Pergunta

I have program using http and I want to read data from http:

data = urllib.request.urlopen(someAddress).read()

And prepare from it list of lines like returning lines by readlines() method for file.

How to do it?

Foi útil?

Solução

urlopen() returns an object that acts just like a file, and supports .readlines():

response = urllib.request.urlopen(someAddress)

lines = response.readlines():

It also supports iteration:

response = urllib.request.urlopen(someAddress)

for line in response:

You already called .read() on the response object; you could also just call str.splitlines() on that:

lines = data.splitlines(True)

where True tells str.splitlines() to preserve line endings.

Outras dicas

I usually do something like. I use urllib2, but it shouldn't be so different:

from urllib2 import Request, urlopen

def getPage(link, splitting = '\n'):
    request = Request(link)
    try:
        response = urlopen(request)
    except IOError:
        return -1
    else:
        the_page = response.read()
        return the_page.split(splitting)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top