web-dev-qa-db-fra.com

Scraping des pages ajax en utilisant python

J'ai déjà vu cette question sur le grattage ajax , mais python n'y est pas mentionné. J'ai envisagé d'utiliser scrapy , je crois qu'ils avoir des documents à ce sujet, mais comme vous pouvez le voir, le site Web est en panne. Je ne sais donc pas quoi faire. Je veux faire ce qui suit:

Je n'ai qu'une seule URL, example.com vous allez de page en page en cliquant sur Soumettre, l'URL ne change pas car ils utilisent ajax pour afficher le contenu. Je veux gratter le contenu de chaque page, comment faire?

Disons que je ne veux gratter que les chiffres, y a-t-il autre chose que du grattage qui le ferait? Sinon, pourriez-vous me donner un extrait sur la façon de le faire, simplement parce que leur site Web est en panne, donc je ne peux pas atteindre les documents.

15
Lynob

Tout d'abord, des documents douteux sont disponibles sur https://scrapy.readthedocs.org/en/latest/ .

Parlant de la gestion de l'ajax lors du grattage Web. Fondamentalement, l'idée est assez simple:

  • ouvrir les outils de développement du navigateur, onglet réseau
  • aller sur le site cible
  • cliquez sur le bouton soumettre et voyez ce que XHR request va au serveur
  • simulez cette demande XHR dans votre araignée

Regarde aussi:

J'espère que cela pourra aider.

33
alecxe

J'ai trouvé la réponse très utile mais je voudrais la rendre plus simple.

response = requests.post(request_url, data=payload, headers=request_headers)

request.post prend trois paramètres URL, données et en-têtes. Les valeurs de ces trois attributs se trouvent dans la demande XHR.

Copiez l'intégralité de l'en-tête de demande et des données du formulaire à charger dans les variables ci-dessus et vous êtes prêt à partir

3
Malak