Recuperer tout le code source d'une page web avec python

L’auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonsoir chers amis je voudrais savoir comment récupérer tout le contenu d’une page web avec python3.4 pour pouvoir travailler la déçu avec beautifulsoup. Je veux pas utiliser httrack il me raméne tous or moi je veux tous le code source dans un fichier.

Merci pour vos réponses.

À la recherche de la connaissance.

+0 -0

Salut,

Que veux-tu dire par « il me raméne tous or moi je veux tous le code source dans un fichier » ? As-tu regardé du côté de la fonction urlopen de urllib.request ?

Édité par Karnaj

Assez des salamis, je passe au jambon — Je fais un carnage si ce car nage car je nage, moi, Karnaj ! — Le comble pour un professeur de mathématique ? Mourir dans l’exercice de ses fonctions.

+0 -0

Salut,

Pour récupérer l’HTML d’une page, tu peux soit utiliser la lib standard (cf la réponse de Karnaj) soit utiliser une librairie de requête HTTP, la plus connue étant requests. La solution devenant aussi simple que :

import requests

response = requests.get('https://example.org')
# tu as maintenant accès à response.status_code, response.text, etc (cf la doc)

La prochaine fois, tu pourras chercher un peu avant de poser ta question. :|

Auteur du sujet

Il me récupère seulement la première page c’est a dire l’index, or c’est une page dont quand on scrolle les informations s’ajoutent encore, je veux pouvoir récupérer toutes ces informations.

Merci

À la recherche de la connaissance.

+0 -0

Il y a des centaines de façon d’implémenter ça. La réponse courte à "comment les récupérer", c’est que tu ne peux pas. La réponse un peu plus longue, c’est que ça dépend du site en question.

+0 -0

Parce que c’est le navigateur Web qui va aller chercher les informations complémentaires (via de nouvelles requêtes ou autres technologies) et afficher à l’utilisateur. Python ne comprend (en principe, probablement qu’il serait possible de bricoler quelque chose de générique avec un truc comme Selenium) pas JavaScript, et donc est incapable de faire ces requêtes par lui-même.

Cela dit, peut-être que ces requêtes suivent un schéma régulier. En inspectant ce qui se passe dans la console de ton navigateur favori, ainsi que dans son inspecteur de requêtes - voire en essayant d’aller lire le Javascript de la page Web pour comprendre ce qu’il se passe - alors tu as des chances de trouver un moyen de récupérer ces informations.

Mais sans savoir de quel site il s’agit, difficile de t’en dire davantage.

Attention à la légalité de cette pratique aussi.

Edit: orthographe

Édité par dab

+1 -0

Tu as Scrappy il semble gérer les sélecteurs CSS. Je ne sais pas s’il est complétement adapté à ton usage.


Ce que dab essaye de t’expliquer, c’est qu’il faut considérer deux types de site web :

  • Ceux qui envoie tout le HTML dès la première requête HTTP par exemple : https://zestedesavoir.com/forums/sujet/11069/recuperer-tout-le-code-source-dune-page-web-avec-python/

  • Les autres sites qui vont charger leur page dynamiquement via du JS (il modifie le DOM de la page) comme twitter.

Pour la hypothèse 1, suffit de sauvegarder la requête dans une variable ou dans un dossier.

Pour l’hypothèse 2, il faut un module qui sert de "mini-navigateur" et capable de charger le DOM de la page. Ou sinon tu fais du reverse engineering pour récupérer les informations à la sources.

Peut-être :

✈️ // 🐺 Ami des loups // 🎮 Coding Game // 🐤 Twitter @A312_zds // :B // L’hiver vient // @**A-312** pour me ping

+1 -0
Auteur du sujet

Je demande si j écris un code javascript permettant de pouvoir scroller la page jusqu' à la dernière puis je récupérer toutes ces données? Merci

À la recherche de la connaissance.

+0 -0

Tu ne peux pas nous dire de quel site tu parles ? Fait attention à l’aspect légal de ce que tu fais.

Si lorsque le Javascript est desactivé, il n’y a pas de pagination, c’est un site qui nécessite du JS. Il faut donc que tu appliques une des techniques qu’on t’a expliqué :

  1. Utiliser la console développeur pour établir d’où viennent les données, ce sont très probablement des requêtes HTTP sur du JSON.
  2. Simuler un navigateur, tu pourras donc intéragir avec la page web.

Mais là, je ne fais que répéter ce que d’autres t’ont déjà dit…

Édité par tleb

Auteur du sujet

Pour le site c’est une page Facebook que j’ai créer et je voudrais automatiquement récupérer les données. c’est légal non?

Mais il y a un truc que je ne comprends pas lorsque je scrolle moi même la page jusqu’à un certains niveau et que je fais Ctrl-u il me ramène toujours la même page d’index et pas plus comment cela s’explique.

Merci

Édité par melo96

À la recherche de la connaissance.

+0 -0

Mais il y a un truc que je ne comprends pas lorsque je scrolle moi même la page jusqu’à un certains niveau et que je fais Ctrl-u il me ramène toujours la même page d’index et pas plus comment cela s’explique.

melo96

Le résultat donné par Ctrl+U n’est pas lié au DOM actuel mais à la source HTML renvoyée par le serveur. Tu peux utiliser l’outil d’inspection si tu veux voir la source de la page dans l’état dans lequel elle est.

Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte