Top.Mail.Ru
Ответы

Нужно спарсить график цен с сайта, не понимаю как это сделать.

Вот сайт - https://market.csgo.com/en/Rifle/M4A4/M4A4 | Buzz Kill (Battle-Scarred)

Я всегда парсил графики с сайтов либо находя нужный json с данными, либо тупо из кода страницы, тут не сработало ничего из этого(хотя может я просто слепой).

Идеально было бы кроме способа увидеть ещё сразу пример кода на Python, но если есть дельные советы в каком направлении двигаться в такой ситуации - буду благодарен за помощь.

По дате
По Рейтингу
Аватар пользователя
Новичок

graphQL запрос там
POST
https://market.csgo.com/api/graphql
{"operationName":"bidAsk","variables":{"market_hash_name":"M4A4 | Buzz Kill (Battle-Scarred)"},"query":"query bidAsk($market_hash_name: String!, $phase: String) {\n bidAsk(market_hash_name: $market_hash_name, phase: $phase) {\n bid {\n price\n state\n date\n total\n __typename\n }\n ask {\n price\n total\n __typename\n }\n __typename\n }\n}"}

Аватар пользователя
Мудрец

Данные на странице, которую вы указали, скорее всего, динамически генерируются на сервере и загружаются через JavaScript после того, как основная страница была загружена. В этом случае стандартные подходы к парсингу, такие как использование библиотек requests и BeautifulSoup, не смогут получить эти данные, потому что они не могут интерпретировать или выполнять JavaScript.

Один из подходов - использовать библиотеки, которые могут имитировать поведение браузера и обрабатывать JavaScript, такие как Selenium или Pyppeteer.

Также вы можете попробовать анализировать трафик сети в браузере, чтобы найти возможный API запрос, который возвращает данные графика. В браузере Chrome это можно сделать, открыв вкладку "Network" в инструментах разработчика (Developer Tools).

Пожалуйста, учтите, что парсинг сайтов может нарушать их пользовательское соглашение, и перед его выполнением стоит удостовериться, что это допускается владельцами сайта. Кроме того, некоторые сайты используют специфические методы защиты от парсинга, которые могут осложнить процесс.