Как загрузить все записи в бесконечной прокрутке одновременно, чтобы разобрать HTML в Python

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

Я использую Python, запросы и BeautifulSoup. Я анализирую страницу, когда она загружается с первыми 10 записями, следующим образом:

from bs4 import BeautifulSoup
import requests
s = requests.Session()
r = s.get('https://medium.com/top-100/december-2013')
page = BeautifulSoup(r.text)

Но это загружает только первые 10 записей. Поэтому я посмотрел на страницу и получил запрос AJAX, используемый для загрузки последующих записей, и получил ответ, но он был в стиле фанк JSON, и я бы предпочел использовать анализатор HTML вместо анализа JSON. Вот код:

from bs4 import BeautifulSoup
import requests
import json
s = requests.Session()
url = 'https://medium.com/top-100/december-2013/load-more'
payload = {"count":100}
r = s.post(url, data=payload)
page = json.loads(r.text[16:]) #skip some chars that throw json off

Это дает мне данные, но это очень длинный и запутанный JSON, я бы предпочел загрузить все данные на странице и просто проанализировать HTML. Кроме того, отрендеренный HTML предоставляет больше информации, чем ответ JSON (то есть имя автора вместо неясного идентификатора пользователя и т. Д.). Был похожий вопросВот но нет соответствующих ответов. В идеале я хочу сделать вызов POST итогда запросить HTML и разобрать его, но я не смог этого сделать.

Ответы на вопрос(3)

Ваш ответ на вопрос