Скрипт очищает сайт Ebay и возвращает первое объявление на сайте. Обычно это работает, но с наименьшим интервалом времени, например 5 с, происходит сбой, обычно через несколько минут. запросы на импорт
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
import time
while True:
options = Options()
options.add_argument("--headless")
browser= webdriver.Firefox(firefox_options=options)
browser.get('https://www.ebay-kleinanzeigen.de/s-auto-rad-boot/sonstiges/sachsen/c241l3799')
html = browser.page_source
sel_soup = BeautifulSoup(html, 'html.parser')
soup1 = sel_soup.findAll('ul', {'class':'itemlist-separatedbefore ad-list lazyload'})[1]
soup2 = soup1.findAll('li', {'class':'ad-listitem lazyload-item'})[0]
item_name = soup2.findAll('a', {'class':'ellipsis'})[0].text
print(item_name)
time.sleep(5)
Если я прав, сайт возвращает данные с JS. Вот почему я пытался решить эту проблему с помощью Selenium, но это не работает. Я получаю ту же ошибку.
soup1 = sel_soup.findAll('ul', {'class':'itemlist-separatedbefore ad-list lazyload'})[1]
IndexError: list index out of range
Я нашел похожий вопрос по stackoverflow, но он не работает для меня, или я делаю что-то не так. Как ждать, пока сайт вернет данные, используя Beautifulsoup4