Comment faire pour lire la totalité d'une page web dans une variable
Je suis en train de lire la totalité d'une page web et de l'affecter à une variable, mais éprouve de la difficulté à le faire. La variable semble être la seule à être capable de tenir la première 512 lignes de la source de la page.
J'ai essayé d'utiliser readlines() pour imprimer toutes les lignes de la source à l'écran, et qui m'a donné la source dans son intégralité, mais j'ai besoin d'être en mesure de l'analyser avec les regex, j'ai donc besoin de le stocker dans une variable en quelque sorte. De l'aide?
data = urllib2.urlopen(url)
print data
Seulement me donne environ 1/3 de la source.
data = urllib2.urlopen(url)
for lines in data.readlines()
print lines
Cela me donne la source en entier.
Comme je l'ai dit, j'ai besoin d'être en mesure d'analyser la chaîne avec la regex, mais la partie que j'ai besoin n'est pas dans le premier 1/3 je suis capable de les stocker dans ma variable.
- double possible de Télécharger le code html de la page et son contenu
Vous devez vous connecter pour publier un commentaire.
Vous êtes probablement à la recherche de belles soupe: http://www.crummy.com/software/BeautifulSoup/ C'est une web open source d'analyse de la bibliothèque pour python. Bonne chance!
Vous devriez être en mesure d'utiliser fichier.lire() pour lire l'intégralité du fichier en une chaîne de caractères. Qui va vous donner la source en entier. Quelque chose comme
devrait vous donner la totalité de la page web.
À partir de là, ne pas analyser HTML avec la regex (bien usés post à cet effet ici), mais utilisez un analyseur HTML à la place. Sinon, nettoyer le code HTML et de le convertir en XHTML (par exemple avec de HTML Tidy), et d'utiliser ensuite une analyse XML bibliothèque comme la norme de ElementTree. L'approche qui est la meilleure en fonction de votre application.
En fait,
print data
ne devrait pas vous donner n'importe quel contenu html parce que c'est juste un pointeur de fichier. La documentation officielle https://docs.python.org/2/library/urllib2.html:C'est ce que j'ai :
readlines()
retourne la liste de lignes de code source html et vous pouvez le stocker dans une chaîne de caractères comme :Vous pouvez soit utiliser la liste
l
ou chaînes
, en fonction de votre besoin.Je vous recommande également d'utiliser opensource web des bibliothèques d'analyse pour faciliter le travail plutôt que d'utiliser des regex pour HTML complète de l'analyse, de toute façon u besoin de regex pour analyser les url.