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