'IOError:[Errno 2]网站上没有这样的文件或目录 - Python

时间:2016-03-26 19:16:21

标签: python web-scraping

我在Python中进行一些网络抓取,我遇到了一个奇怪的错误。有时当我尝试使用URL打开并读取html文件时,我收到以下错误:

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

产生此错误的代码在这里:终端不喜欢此代码块中的最后一行。

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

列表games是一个肯定存在的网址列表。这是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,因此它不是拥有完整的网址,而是只有部分网址。

例如,旧games中的第一个元素是/games/20160323/ATLWAS/gameinfo.html。然后在上面显示的for循环中,我写了url = game而不是nba.com+url。当我使用上面描述的更改运行它时,它按预期运行。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

Python 2

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

(对于 Python 3 ,您必须包含.request)

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