2012-11-30 33 views
6

タイトルはほとんどすべてそれを言います。ここに私のコードだ:ValueError:不明なURLのタイプ

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

+2

URLに「http://」を追加します。 – iMom0

答えて

8

まず、URLの前に'http://'を追加してください。それは別の(非呼び出し可能)オブジェクトへの参照を結合さとしても、printないストア結果を行います。

ので、この行は次のようになります。

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

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

for line in page_contents.readlines(): 
    print line 
+0

ありがとう。あなたは私の質問に答えただけでなく、あなたは私の次の人に答えました! ;) – Jamus

+0

私は同じエラーがあり、私は 'wget'でウェブサイトをダウンロードしました、どうすればそれを開くことができますか? – hhh

3

フルURLを渡す必要があります。つまり、最初にhttp://で始まる必要があります。

+0

ありがとう、これはそれを解決した:) – Jamus

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>> 
関連する問題