Frage

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?

War es hilfreich?

Lösung

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.

Andere Tipps

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)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top