2016-03-26 10 views
-3

PythonでいくつかのWebスクレイピングをしていますが、私は奇妙なエラーに遭遇しています。私は次のエラーを取得するURLを使用して、HTMLファイルを開き、読みしようとすると、たまに:'IOError:[Errno 2]このようなファイルやディレクトリはありません - Python

'IOError: [Errno 2] No such file or directory' 

このエラーを生成されるコードはここにある:ターミナルは、このコードのブロック内の最後の行が好きではありません。 。

for game in games: 
      url = game 
      page = urllib.urlopen(url).read() 

リストgamesは、間違いなく存在するURLのリストです。これは、私はそれをプリントアウトするときgamesは、次のようになります。

['nba.com/games/20160323/ATLWAS/gameinfo.html', 
'nba.com/games/20160323/MILCLE/gameinfo.html', 
'nba.com/games/20160323/TORBOS/gameinfo.html', 
'nba.com/games/20160323/ORLDET/gameinfo.html', 
'nba.com/games/20160323/NYKCHI/gameinfo.html', 
'nba.com/games/20160323/UTAHOU/gameinfo.html', 
'nba.com/games/20160323/SACMIN/gameinfo.html', 
'nba.com/games/20160323/MIASAS/gameinfo.html', 
'nba.com/games/20160323/PHIDEN/gameinfo.html', 
'nba.com/games/20160323/LALPHX/gameinfo.html', 
'nba.com/games/20160323/DALPOR/gameinfo.html', 
'nba.com/games/20160323/LACGSW/gameinfo.html'] 

私はこのエラーを取得していますなぜ、誰もが知っていますか?私は実際にこのエラーを実際に受けました。その時に解決しましたが、なぜ私が何をしたのか理解できず、コミュニティに尋ねたがっていました。以前は、私はgamesをセットアップしていたので、完全なURLを持つ代わりに、そのURLの一部しか持っていなかった。

たとえば、古いgamesの最初の要素は/games/20160323/ATLWAS/gameinfo.htmlでした。上記のforループでは、url = gameの代わりにnba.com+urlと書きました。上記の変更を加えて実行したところ、予想どおりに実行されました。 ご協力いただければ幸いです。

+0

あなたはサイトに行けば、あなたのURLが同じではありません見ることができます –

+1

私は '' nba.com "+/games/20160323/ATLWAS/gameinfo.html'もこれまでに働いたとは思わない –

答えて

0

Pythonの2

for game in games: 
     url = "http://" + game 
     page = urllib.urlopen(url).read() 

ためのPython 3あなたは.requestを含める必要が)

page = urllib.request.urlopen(url).read() 
+0

文字列を文字列にキャストする必要はないと思います。 – Goyo

+0

@goyo編集: –

+0

'games'のリンクを訪問すると、ブラウザは' http:// www'を追加します。たぶんOPはhttp://の代わりにまったく同じことを試してください。 – Alessiox

関連する問題