Editar 09/2016: No Python 3 e superior, use urllib.request em vez de urllib2
Na verdade, a maneira mais simples é:
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
Você nem precisa de "linhas de leitura", como sugeriu Will. Você pode até encurtá-lo para: *
import urllib2
for line in urllib2.urlopen(target_url):
print line
Mas lembre-se que em Python, a legibilidade é importante.
No entanto, esta é a maneira mais simples, mas não a maneira segura, porque na maioria das vezes com a programação de rede, você não sabe se a quantidade de dados esperada será respeitada. Então, geralmente é melhor você ler uma quantidade fixa e razoável de dados, algo que você sabe ser suficiente para os dados que você espera, mas evitará que seu script seja inundado:
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
* Segundo exemplo em 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
A biblioteca de solicitações tem uma interface mais simples e funciona com Python 2 e 3.
fonte
fonte
fonte
Outra maneira no Python 3 é usar o pacote urllib3 .
Esta pode ser uma opção melhor do que urllib, uma vez que urllib3 se orgulha de ter
fonte
Para mim, nenhuma das respostas acima funcionou diretamente. Em vez disso, tive que fazer o seguinte (Python 3):
fonte
Atualizando aqui a solução sugerida por @ ken-kinder para Python 2 funcionar para Python 3:
fonte