Comment charger toutes les entrées dans un infini de défilement à la fois d'analyser le code HTML en python

Je suis en train d'extraire des informations à partir cette page. Le chargement de la page 10 éléments à la fois, et j'ai besoin de faire défiler à la charge de toutes les entrées (pour un total de 100). Je suis capable d'analyser le code HTML et d'obtenir l'information dont j'ai besoin pour les 10 premières entrées, mais je veux charger complètement toutes les entrées avant de parser le HTML.

Je suis à l'aide de python, les demandes, et BeautifulSoup. La façon dont je parse la page se charge avec les 10 premières entrées est comme suit:

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

Mais cela ne charge que les 10 premières entrées. J'ai donc regardé la page et a obtenu la requête AJAX pour charger les entrées suivantes et je reçois une réponse, mais c'est dans l'un des plus funky JSON et je préfère utiliser l'analyseur HTML à la place de l'analyse JSON. Voici le code:

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

Cela me donne beaucoup de données, mais il est dans un très long et alambiqué JSON, je préférerais de beaucoup de charger toutes les données sur la page et simplement analyser le code HTML. En outre, le rendu HTML fournit plus d'informations que la réponse JSON (c'est à dire le nom de l'auteur, au lieu d'un obscur userID, etc.) Il y a une question similaire ici mais pas de réponses pertinentes. Idéalement, je veux faire de la POST-appel et puis demande le code HTML et de l'analyser, mais je n'ai pas été en mesure de le faire.

  • ressemble à parser le JSON serait la meilleure façon d'aller
  • merci. J'ai écrit le parser JSON et il le fait ce dont j'ai besoin. Cependant, j'ai mis à jour ma question pour mettre en évidence le fait que le rendu de la page HTML contient des informations plus utiles que le JSON. Je suppose que c'est traduit à un certain point et injecté dans le HTML.
  • Je suis à l'Aide de JSoup(à l'aide de java) pour analyser la page web, je suis confrontée au même problème d'avoir seulement quelques-uns des résultats de recherche. Pointeurs pour mettre en œuvre le défilement ,veuillez
InformationsquelleAutor user3093455 | 2014-01-08