Edit 09/2016: Verwenden Sie in Python 3 und höher urllib.request anstelle von urllib2
Eigentlich ist der einfachste Weg:
import urllib2 # the lib that handles the url stuff
data = urllib2.urlopen(target_url) # it's a file like object and works just like a file
for line in data: # files are iterable
print line
Sie brauchen nicht einmal "Readlines", wie Will vorgeschlagen hat. Sie können es sogar verkürzen auf: *
import urllib2
for line in urllib2.urlopen(target_url):
print line
Denken Sie jedoch daran, dass in Python die Lesbarkeit wichtig ist.
Dies ist jedoch der einfachste, aber nicht der sichere Weg, da Sie bei der Netzwerkprogrammierung meistens nicht wissen, ob die zu erwartende Datenmenge eingehalten wird. Sie sollten also im Allgemeinen eine feste und angemessene Datenmenge lesen, von der Sie wissen, dass sie für die erwarteten Daten ausreicht, aber verhindert, dass Ihr Skript überflutet wird:
import urllib2
data = urllib2.urlopen("http://www.google.com").read(20000) # read only 20 000 chars
data = data.split("\n") # then split it into lines
for line in data:
print line
* Zweites Beispiel in Python 3:
import urllib.request # the lib that handles the url stuff
for line in urllib.request.urlopen(target_url):
print(line.decode('utf-8')) #utf-8 or iso8859-1 or whatever the page encoding scheme is
Die Anforderungsbibliothek hat eine einfachere Oberfläche und funktioniert sowohl mit Python 2 als auch mit Python 3.
quelle
quelle
quelle
Eine andere Möglichkeit in Python 3 ist die Verwendung des urllib3-Pakets .
Dies kann eine bessere Option sein als urllib, da urllib3 sich rühmt
quelle
Für mich hat keine der oben genannten Antworten direkt funktioniert. Stattdessen musste ich Folgendes tun (Python 3):
quelle
Aktualisieren Sie einfach die von @ ken-kinder für Python 2 vorgeschlagene Lösung, um für Python 3 zu funktionieren:
quelle