Как парсить сайт который подгружает информации позже?

Всем привет нужно парсить сайт https://znanija.com/ , чтобы при любом вопросе он в ответ отправлял количество результатов и варианты ответов, но проблема в том что при переходе на сайт происходить прогрузка и чтобы получать информацию нужна задержка чтобы сайт прогрузился
import requests
from bs4 import BeautifulSoup
from time import sleep

URL = 'https://znanija.com/app/ask?entry=hero&q=%D0%BE%D0%B1%D1%8C%D0%B5%D0%BC+%D0%BA%D1%83%D0%B1%D0%B0'
header = {'user-agent':
              'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36'}
sleep(2)
page = requests.get(URL, headers=header)
soup = BeautifulSoup(page.content, 'html.parser')
req = soup.find('span', {'class':'sg-text'})
print(req)


результат
<span class="sg-text">
Поиск...
</span>
  • Вопрос задан
  • 276 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
нужна задержка чтобы сайт прогрузился

Это не так работает. Данные загружаются динамически с помощью дополнительных фоновых запросов.
Открываете инструменты разработчика, вкладку нетворк и ищите нужный вам запрос в XHR. Затем повторяете его через python
Спойлер: вот он
603aa904a2b80968033093.jpeg

POST на https://znanija.com/graphql/ru
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы