2017-05-07 13 views
0

私はCourseraでpythonを学びたいと思っています。アクセスWebデータへのPythonが、4週に私は、次のようなサンプル・プログラムを実行しようとしていた場合でも、問題を満たす:Python 2.7.13 urllibがIOErrorを返しました:[python-data.dr-chuck.net \ comments_42.html '

import urllib 
from BeautifulSoup import * 

url = raw_input('Enter - ') 

html = urllib.urlopen(url).read() 

soup = BeautifulSoup(html) 

tags = soup('a') 
for tag in tags: 

    print 'TAG:',tag 
    print 'URL:',tag.get('href', None) 
    print 'Contents:',tag.contents[0] 
    print 'Attrs:',tag.attrs 

私はアドレスを入力した後:python-data.dr-chuck.net/comments_42.htmlを、それは常にこのような問題を示しています。 Pythonのファイルがサンプルfとして書かれているので

the result I got

コースには問題はありません。だから、私はインターネット上で答えを見つけようとしていますが、何らかのプロキシを使ってチェックしようとしましたが、それでも動作できません。本当に助けていただきありがとうございます!

+0

エラーをここに貼り付けることができますか? – tdelaney

+1

また、入力したものを正確に表示するためにプリントを追加できますか? ...あなたは何をタイプしましたか?正面に 'http://'を含めておらず、urllibがローカルファイルシステムを読み込もうとしたようです。 – tdelaney

+0

'urllib.urlopen(" http://python-data.dr-chuck.net/comments_42.html ").read()'が動作します。 – tdelaney

答えて

0

urllib documentation状態:

Open a network object denoted by a URL for reading. If the URL does not have a scheme identifier, or if it has file: as its scheme identifier, this opens a local file (without universal newlines); otherwise it opens a socket to a server somewhere on the network.

あなたのコードは罰金ですが、スキーム識別子なしでURLを渡している:python-data.dr-chuck.net/comments_42.html、これurllibはは例外IOErrorを生成する、ローカルに開こうとします。

http://python-data.dr-chuck.net/comments_42.htmlと試してみてください。

+0

あなたの返信は本当に私に役立ちます!ありがとうございました!!私は "http://"アドレスの先頭に追加する必要があります、私はこれをしなかった理由は、 "http://"との入力は、私はそれを誤解させる任意の出力を与えませんでしたバグ。しかし、実際には、ページにはアンカータグがまったくないので、空の結果が得られます。私はアンカータグの意味を理解していませんでした。おかげさまで、ありがとうございます。 – chemonk

+0

次に、あなたはトピックを閉じて、答えが受け入れられたとマークすることができると思います:) – Hugo

関連する問題