Добро пожаловать в SO!
Возможно, я немного не в себе c, но я бы предложил альтернативное решение, учитывая структуру веб-сайта, которую вы пытаетесь очистить. В частности, я бы использовал selenium
, чтобы получить все ссылки на игровые страницы, затем я бы oop внутри ссылок и получал бы страницу за страницей с requests
(что намного быстрее, чем selenium
, и не требуется time.sleep()
для загрузки страниц. Наконец, учитывая, что задача особенно проста, я бы избавился от структуры кода класс + функции (даже если она оптимальна с точки зрения pythoni c, Если вы только начали, вы можете go шаг за шагом использовать простой код, а затем добавить функцию, класс и т. д.).
Ниже вы можете найти MWE, который получает все ссылки из ' www.isthereanydeal.com 'и перебирает все полученные ссылки
from selenium import webdriver
import requests
driver = webdriver.Chrome()
driver.get('https://www.isthereanydeal.com')
time.sleep(2)
SCROLL_PAUSE_TIME = 0.5 # scroll each #
# Get scroll height
last_height = self.driver.execute_script("return document.body.scrollHeight")
## SCROLL DOWN UNTIL IT FINISHES ##
while True:
# Scroll down to bottom
self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
# Wait to load page
time.sleep(SCROLL_PAUSE_TIME)
# Calculate new scroll height and compare with last scroll height
new_height = self.driver.execute_script("return document.body.scrollHeight")
if new_height == last_height: # scroll down until the end
break
last_height = new_height
result_iter = driver.find_elements_by_class_name('noticeable')
links = [x.get_attribute("href") for x in result_iter] # get all game links
driver.close()
for l in links:
r = requests.get(l) # get the game page
# DO WHATEVER YOU HAVE TO DO IN THE GAME PAGE #