Парсинг сайта с динамической типизацией без использования Selenium

Рейтинг: 0Ответов: 1Опубликовано: 28.05.2023

Попал в какой-то тупик на самом деле, либо не до конца все просмотрел. Больше склоняюсь к первому конечно)

import requests


url = 'https://store.steampowered.com/specials'
s = requests.Session()
s.cookies.set('Steam_Language', 'russian', domain='store.steampowered.com')
r = s.get(url)
src = r.text

with open("index.html", "w", encoding="utf-8") as file:
    file.write(src)

Не особо вижу здесь смысл от кода, ну да ладно. Решил записать все в html файл только после того, как мне в результат вышел пустой массив. Просмотрел html файл и понял, что все, кроме заголовков на странице подгружается с сервера. Но не получается найти откуда именно. Помогите пожалуйста!

Нужны игры из этого блока:

Нужны игры из этого блока

Ответы

▲ 0Принят

Получилось собрать все нужные данные, коих 10000, всего за 6 минут. Расследование можете наблюдать в комментариях к основному посту, все таки использовал web-api стима. Если вкратце, то делал запрос, который возвращал список всех существующих игр.

https://api.steampowered.com/ISteamApps/GetAppList/v2/

После чего узнал какое количество идентификаторов может принимать этот запрос

https://store.steampowered.com/api/appdetails?appids=&cc=ru&filters=price_overview

И на основе этого запроса создал цикл, который проверял по тысяче игр(максимальное количество идентификаторов) за раз и записывал идентификаторы скидочных игр в список. Таким образом получился рабочий код, который всего за 6 минут проверяет все 150000+ игр из стима.