Ошибка Python при использовании urllib.open - PullRequest
25 голосов
/ 01 марта 2009

Когда я запускаю это:

import urllib

feed = urllib.urlopen("http://www.yahoo.com")

print feed

Я получаю этот вывод в интерактивном окне (PythonWin):

<addinfourl at 48213968 whose fp = <socket._fileobject object at 0x02E14070>>

Я ожидаю получить источник вышеуказанного URL. Я знаю, что это работало на других компьютерах (например, в школе), но это на моем ноутбуке, и я не уверен, в чем здесь проблема. Кроме того, я совсем не понимаю эту ошибку. Что это значит? Addinfourl? FP? Пожалуйста, помогите.

Ответы [ 3 ]

53 голосов
/ 01 марта 2009

Попробуйте это:

print feed.read()

См. Документы Python здесь .

17 голосов
/ 01 марта 2009

urllib.urlopen на самом деле возвращает объект, подобный файлу, поэтому для извлечения содержимого вам нужно будет использовать:

import urllib

feed = urllib.urlopen("http://www.yahoo.com")

print feed.read()
7 голосов
/ 02 марта 2009

В Python 3.0:

import urllib
import urllib.request

fh = urllib.request.urlopen(url)
html = fh.read().decode("iso-8859-1")
fh.close()

print (html)
...