标题几乎说明了一切。这是我的代码:
from urllib2 import urlopen as getpage
print = getpage("www.radioreference.com/apps/audio/?ctid=5586")
这是我得到的追溯错误:
Traceback (most recent call last):
File "C:/Users/**/Dropbox/Dev/ComServ/citetest.py", line 2, in <module>
contents = getpage("www.radioreference.com/apps/audio/?ctid=5586")
File "C:\Python25\lib\urllib2.py", line 121, in urlopen
return _opener.open(url, data)
File "C:\Python25\lib\urllib2.py", line 366, in open
protocol = req.get_type()
File "C:\Python25\lib\urllib2.py", line 241, in get_type
raise ValueError, "unknown url type: %s" % self.__original
ValueError: unknown url type: www.radioreference.com/apps/audio/?ctid=5586
我最好的猜测是,urllib无法从不整齐的php网址中检索数据。如果是这种情况,是否有解决方法?如果没有,我做错了什么?
答案 0 :(得分:8)
您应首先尝试在网址前添加'http://'
。此外, 不 将结果存储在print
中,因为它将引用绑定到另一个(不可调用的)对象。< / p>
所以这一行应该是:
page_contents = getpage("http://www.radioreference.com/apps/audio/?ctid=5586")
这会返回一个像object这样的文件。要阅读其内容,您需要使用不同的文件操作方法,如下所示:
for line in page_contents.readlines():
print line
答案 1 :(得分:3)
您需要传递完整的网址:即必须以http://
开头。
答案 2 :(得分:2)
只需使用http://www.radioreference.com/apps/audio/?ctid=5586
,它就可以正常使用。
In [24]: from urllib2 import urlopen as getpage
In [26]: print getpage("http://www.radioreference.com/apps/audio/?ctid=5586")
<addinfourl at 173987116 whose fp = <socket._fileobject object at 0xa5eb6ac>>