Edit 09/2016: Dans Python 3 et plus, utilisez urllib.request au lieu de urllib2
En fait, le moyen le plus simple est:
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
Vous n'avez même pas besoin de "readlines", comme Will l'a suggéré. Vous pouvez même le raccourcir en: *
import urllib2
for line in urllib2.urlopen(target_url):
print line
Mais rappelez-vous qu'en Python, la lisibilité est importante.
Cependant, c'est le moyen le plus simple mais pas le plus sûr car la plupart du temps avec la programmation réseau, vous ne savez pas si la quantité de données à attendre sera respectée. Donc, vous feriez généralement mieux de lire une quantité fixe et raisonnable de données, ce que vous savez être suffisant pour les données que vous attendez mais qui empêchera votre script d'être inondé:
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
* Deuxième exemple en 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
La bibliothèque de requêtes a une interface plus simple et fonctionne avec Python 2 et 3.
la source
la source
la source
Une autre façon de Python 3 consiste à utiliser le package urllib3 .
Cela peut être une meilleure option que urllib car urllib3 se vante d'avoir
la source
Pour moi, aucune des réponses ci-dessus n'a fonctionné directement. Au lieu de cela, j'ai dû faire ce qui suit (Python 3):
la source
Il suffit de mettre à jour ici la solution suggérée par @ ken-kinder pour que Python 2 fonctionne pour Python 3:
la source