Программа доходит максимум до 1200 игр, хотя всего их 7350, таймер пытался увеличивать, ничего не поменялось, а надо брать все 7350 игр
from selenium import webdriver, common
import time
from bs4 import BeautifulSoup
from selenium import webdriver
import time
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import json
url = f'https://store.steampowered.com/specials/'
s = Service(executable_path='C:\Пользователи\Олег\PycharmProjects\TelegramBot\chromedriver_win32\chromedriver.exe')
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(service=s, options=options)
driver.get(url)
time.sleep(3)
try:
for i in range(650):
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(2)
driver.find_element(By.XPATH, '//div[@class="saleitembrowser_ShowContentsContainer_3IRkb"]//button[text()="Показать больше"]').click()
except common.exceptions.NoSuchElementException:
pass
time.sleep(3)
html = driver.page_source
soup = BeautifulSoup(html, "lxml")
games_names = soup.find_all('div', class_='salepreviewwidgets_StoreSaleWidgetRight_1lRFu')
all_sales_dict = {}
for game in games_names:
try:
name = game.find('div', 'salepreviewwidgets_TitleCtn_1F4bc').find('a').text
price_sale = game.find('div', 'salepreviewwidgets_StoreSalePriceBox_Wh0L8').text
price_orig = game.find('div', 'salepreviewwidgets_StoreOriginalPrice_1EKGZ').text
sale = game.find('div', 'salepreviewwidgets_StoreSaleDiscountBox_2fpFv').text
price = (f"Цена без скидки: {price_orig}. Скидка: {sale}. Цена со скидкой: {price_sale}")
all_sales_dict[name] = price
except AttributeError:
pass
with open("all_sales.json", "w", encoding="utf-8") as file:
json.dump(all_sales_dict, file, indent=4, ensure_ascii=False)
Источник: Stack Overflow на русском