Comment lire html depuis une url en python 3
J'ai regardé les précédentes questions similaires et a obtenu que la plus confus.
En python 3.4, je veux lire une page html comme une chaîne de caractères, compte tenu de l'url.
En perl, je le fais avec LWP::Simple, à l'aide de get().
Un matplotlib 1.3.1 exemple dit: import urllib; u1=urllib.urlretrieve(url)
.
python3 ne pouvez pas trouver urlretrieve
.
J'ai essayé u1 = urllib.request.urlopen(url)
qui semble avoir une HTTPResponse
objet, mais je ne peux pas l'imprimer ou d'obtenir une longueur ou d'index.
u1.body
n'existe pas. Je ne peux pas trouver une description du HTTPResponse
dans python3.
Est-il un attribut dans la HTTPResponse
objet qui va me donner le raw octets de la page html?
(Inutiles de matériel provenant d'autres questions urllib2
qui n'existe pas dans mon python, csv analyseurs, etc.)
Edit:
J'ai trouvé quelque chose en avant la question, du moins en partie (pour la plupart) fait le travail:
u2 = urllib.request.urlopen('http://finance.yahoo.com/q?s=aapl&ql=1')
for lines in u2.readlines():
print (lines)
Je dis "en partie" parce que je ne veux pas lire des lignes distinctes, mais juste une grosse corde.
Je pouvais tout simplement concaténer les lignes, mais chaque ligne imprimée a un caractère 'b' ajouté.
D'où cela vient?
Encore une fois, je suppose que je pourrais supprimer le premier caractère avant la concaténation, mais qui est d'être un kloodge.
source d'informationauteur user1067305
Vous devez vous connecter pour publier un commentaire.
Noter que Python3 ne pas lire le code html comme une chaîne de caractères, mais comme un
bytearray
donc vous devez le convertir en un avecdecode
.Essayer la "demande" d'un module, il est beaucoup plus simple.
plus d'info ici > http://docs.python-requests.org/en/master/
urllib.request.urlopen(url).read()
devrait vous retourner le raw page HTML comme une chaîne de caractères.De la lecture d'une page html avec urllib est assez simple à faire. Puisque vous voulez le lire comme une seule chaîne, je vais vous montrer.
Import urllib.demande:
Préparer notre demande
Toujours utiliser un "try/except" lorsque vous demandez une page web que les choses peuvent facilement se tromper. urlopen() demande la page.
Type est une grande fonction qui va nous dire ce "type" d'une variable. Ici, la réponse est un http.réponse de l'objet.
La fonction de lecture pour notre objet de réponse va stocker le code html des octets de notre variable. De nouveau type() permettra de vérifier cette.
Maintenant, nous utilisons le décodage de la fonction pour notre octets variable pour obtenir une chaîne unique.
Si vous ne souhaitez diviser cette chaîne en lignes distinctes, vous pouvez le faire avec la fonction split() de la fonction. Dans cette forme, on peut facilement parcourir pour imprimer la totalité de la page ou n'importe quel autre traitement.
Espérons que cela donne un peu plus détaillée de la réponse. Python de la documentation et des tutoriels sont super, je voudrais l'utiliser comme une référence, car elle permettra de répondre à la plupart des questions que vous pourriez avoir.
Ce sera un travail semblable à
urllib.urlopen
.