Question

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?

Était-ce utile?

La solution

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.

Autres conseils

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)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top