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

Le problème exposé dans ce sujet a été résolu.

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.

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 ?

+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. :|

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

+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 :

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…

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

+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.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

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