Wie zu Lesen, die html von einer url in python 3
Sah ich bei früheren ähnlichen Fragen und bekam nur noch mehr verwirrt.
In python 3.4, die ich Lesen möchte eine html-Seite als string gegebene url.
In perl kann ich das mit LWP::Simple, mit get().
Einen matplotlib 1.3.1 Beispiel sagt: import urllib; u1=urllib.urlretrieve(url)
.
Python ist3 nicht finden können urlretrieve
.
Versuchte ich u1 = urllib.request.urlopen(url)
, die angezeigt wird, um eine HTTPResponse
Objekt, aber ich kann nicht drucken oder sich eine Länge drauf, oder index.
u1.body
existiert nicht. Ich kann nicht finden, eine Beschreibung der HTTPResponse
in Python ist3.
Ist es ein Attribut in der HTTPResponse
Objekt, was mir die raw-bytes der html-Seite?
(Irrelevante Sachen von anderen Fragen gehören urllib2
, die nicht vorhanden ist in meinem python -, csv-Parser, etc).
Edit:
Fand ich etwas in einer vorherigen Frage, die teilweise (meist) der job:
u2 = urllib.request.urlopen('http://finance.yahoo.com/q?s=aapl&ql=1')
for lines in u2.readlines():
print (lines)
Ich sagen 'teilweise', weil ich nicht wollen, zu Lesen, separate Linien, sondern nur einen großen string.
Konnte ich nur verketten die Zeilen, aber jede Zeile, die gedruckt hat, ein Zeichen 'b' vorangestellt.
Woher kommt das?
Wieder, ich nehme an, dass ich löschen könnte das erste Zeichen vor der Verkettung, aber nicht bekommen, um ein kloodge.
HTTPResponse
Objekte in der Python-3-Dokumentation.InformationsquelleAutor user1067305 | 2014-06-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beachten Sie, dass Python ist3 nicht Lesen den html-code als string, sondern als
bytearray
sind, so müssen Sie es konvertieren zu einem mitdecode
.fp
Objekt hatreadlines()
Methode, mindestens Python version 3.6.1.nicht eine gute Idee zu übernehmen, die UTF-8-kodiert. Sie sollten versuchen, und Lesen Sie die header
Ich kann nicht schreiben, mystr, um text-Datei. Ich bekomme diese Fehlermeldung jedes mal, wenn ich das Programm ausführen :
return codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError: 'charmap' codec can't encode characters in position 369774-369777: character maps to <undefined>
InformationsquelleAutor davidgh
Versuchen Sie das 'requests' - Modul, ist es viel einfacher.
mehr info hier > http://docs.python-requests.org/en/master/
InformationsquelleAutor Aaron T.
urllib.request.urlopen(url).read()
zurückkehren sollte Sie den raw-HTML-Seite als string.seltsam...
request.urlopen()
gibt einenHTTPResponse
und Sie haben dieread()
Methode...OK! Ich habe versucht, es auf diese Weise:u2 = das urllib.Anfrage.urlopen('finance.yahoo.com/q?s=aapl&ql=1') junk = u2.read() print(junk -)
InformationsquelleAutor
Diese funktionieren ähnlich wie
urllib.urlopen
.InformationsquelleAutor Ramandeep Singh
Lesen Sie eine html-Seite mit das urllib ist ziemlich einfach zu tun. Da Sie ihn Lesen wollen, als eine einzelne Zeichenfolge, die zeige ich Euch.
Das urllib Import.Anfrage:
Bereiten unsere Anfrage
Verwenden Sie immer einen "try/except" beim anfordern einer web-Seite, wie Dinge können leicht schief gehen. urlopen() die Seite anfordert.
Typ ist eine tolle Funktion, die uns sagen, was wir 'geben' eine variable ist. Hier, eine Antwort wird ein http.response-Objekt.
Die read-Funktion für unser response-Objekt speichern wird der html-Code als Byte zu unserer variable. Wieder type() wird dies überprüfen.
Jetzt verwenden wir die Funktion decode für unsere Byte-variable, um eine einzelne Zeichenfolge.
, Wenn Sie wollen, zu teilen auf diese Zeichenfolge in einzelne Zeilen, die Sie tun können, damit mit der split () - Funktion. In dieser form können wir einfach Durchlaufen, um die ganze Seite ausdrucken oder jede andere Verarbeitung.
Ich hoffe diese etwas ausführlichere Antwort. Python-Dokumentation und tutorials sind Super, ich würde verwenden, als eine Referenz, da es die meisten Fragen beantworten, die Sie haben könnten.
guten Fang. Ich bin damit einverstanden, während utf-8 ist weit verbreitet, Sie könnten möglicherweise laufen in Probleme.
InformationsquelleAutor Discoveringmypath
InformationsquelleAutor agamike