6

タイトルはほとんどそれをすべて言います。これが私のコードです:

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 URL からデータを取得できないということです。この場合、回避策はありますか? そうでない場合、私は何を間違っていますか?

4

3 に答える 3

10

'http://'まず、URL の前に追加してみてください。また、結果をに保存しないでください。別の (呼び出し可能でない) オブジェクトへの参照をバインドしているためです。print

したがって、この行は次のようになります。

page_contents = getpage("http://www.radioreference.com/apps/audio/?ctid=5586")

これは、ファイルのようなオブジェクトを返します。その内容を読み取るには、次のようにさまざまなファイル操作方法を使用する必要があります。

for line in page_contents.readlines():
    print line
于 2012-11-30T08:57:49.527 に答える
3

完全な URL を渡す必要があります。つまり、 で始まる必要がありますhttp://

于 2012-11-30T08:56:59.147 に答える
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>>
于 2012-11-30T08:57:15.200 に答える