Создаю парсер, который должен парсить страницу со скидками стима, но в результате парсинга в результате дается только 3-4 игры
from bs4 import BeautifulSoup
from selenium import webdriver
import time
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
url = f'https://store.steampowered.com/specials/'
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/93.0.4577.82 Safari/537.36",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,"
"application/signed-exchange;v=b3;q=0.9",
}
def get_result(url, headers):
chrome_options = Options()
options = webdriver.ChromeOptions()
s = Service(executable_path='C:\Пользователи\Олег\PycharmProjects\TelegramBot\chromedriver_win32\chromedriver.exe')
driver = webdriver.Chrome(service=s, options=options)
options.add_argument('--headless')
options.add_argument('--no-sandbox')
driver.get(url)
time.sleep(10)
html = driver.page_source
soup = BeautifulSoup(html, "lxml")
games = soup.find_all('div', class_='salepreviewwidgets_StoreSaleWidgetRight_1lRFu')
for game in games:
game_name = f'Название: {game.find("div", class_="salepreviewwidgets_StoreSaleWidgetTitle_3jI46").text}'
discount = f'Скидка: {game.find("div", class_="salepreviewwidgets_StoreSaleDiscountBox_2fpFv").text}'
price_original = f'Цена без скидки: {game.find("div", class_="salepreviewwidgets_StoreOriginalPrice_1EKGZ").text}'
price_sale = f'Цена после скидки: {game.find("div", class_="salepreviewwidgets_StoreSalePriceBox_Wh0L8").text}'
print(game_name)
print(price_original)
print(discount)
print(price_sale)
def main():
get_result(url=url, headers=headers)
if __name__ == "__main__":
main()
Источник: Stack Overflow на русском