noob.py
在这里。我正在尝试从页面获取内容,但print
语句引发了一个我不理解的错误。
实际代码:
import urllib2
import sys
url = "http://make.wordpress.org/core/page/2/"
response = urllib2.urlopen(url)
html = response.read
print html
输出:
$ python get.py
<bound method _fileobject.read of <socket._fileobject object at 0x3722ec9a8d0>>
我怀疑Python不喜欢该特定网址,因为它可以使用http://www.python.org
代替,但我可以获得任何有用的信息来理解它。
我没有得到的是,如果我将其包含在try:
和except:↵ pass
中,我仍然会收到该错误消息。
任何指针都很受欢迎。
答案 0 :(得分:5)
这不是错误;它是read
方法的字符串表示形式。
你正在看到它,因为在这一行:
html = response.read
您忘记调用read
方法。因此,html
被赋给方法本身,而不是它的返回值。
在方法名称后添加()
将调用它:
html = response.read()
现在,html
设置为read
方法的返回值。
答案 1 :(得分:1)
这里要学习的好处是python中的所有内容(函数,数据,变量)都是一个对象,print <obj>
会给你类似object at 0x3722ec9a8d0>