Как загрузить больше элементов с веб-страниц с помощью BeautifulSoup и/или selenium

#html #selenium #beautifulsoup #click #infinite-scroll

Вопрос:

Я хотел бы получить каждую ссылку, содержащуюся в каждом поле, страница https://www.quattroruote.it/listino/audi

На этой веб-странице представлены все модели, которые производит этот бренд, и каждая модель представляет собой коробки, которые ссылаются на другую страницу (ту, с которой я должен работать).

Моя проблема в том, что на начальной странице не загружаются все поля с первого раза, вам нужно прокрутить вниз и нажать красную кнопку «Carica altri modelli» (что означает «Загрузить другие модели»). Есть ли способ автоматически сохранить в одной переменной все нужные мне ссылки? Например, первые ссылки в первом поле «/listino/audi/a1»

Заранее спасибо всем, кто пытается мне помочь!!

Ответ №1:

Не уверен, какие именно ссылки вам нужны, но вы можете выполнять запросы, повторяя этот itemStart параметр.

 import requests
from bs4 import BeautifulSoup

for i in range(1,100):
    print('ttList start %s' %i)
    url = 'https://www.quattroruote.it/listino/ricerca-more-desktop.html'
    payload = {
        'area': 'NEW',
        'itemStart': '%s' %(i*8),
        '_': '1634219611449'}
    
    response = requests.get(url, params=payload)
    
    soup = BeautifulSoup(response.text, 'html.parser')
    links = soup.find_all('a', href=True)
    
    for link in links:
        print(link['href'])