我正在使用BeautifulSoup4抓取网站。这是我所拥有内容的精简版:

from bs4 import BeautifulSoup

def getTeamRoster(teamURL):
     soup = BeautifulSoup(open(teamURL))

def main():
     getTeamRoster("http://modules.ussquash.com/ssm/pages/leagues/Team_Information.asp?id=11325")


我已经拉出页面,并将其正确加载到浏览器(Chrome)中。由于某种原因,我收到以下错误:

Traceback (most recent call last):
  File "SquashScraper.py", line 61, in <module>
    main()
  File "SquashScraper.py", line 58, in main
    getTeamRoster("http://modules.ussquash.com/ssm/pages/leagues/Team_Information.asp?id=11325")
  File "SquashScraper.py", line 21, in getTeamRoster
    soup = BeautifulSoup(open(teamURL))
FileNotFoundError: [Errno 2] No such file or directory: 'http://modules.ussquash.com/ssm/pages/leagues/Team_Information.asp?id=11325'


知道会发生什么吗?

我查看了别人的BeautifulSoup4代码,以为我做的是访问页面HTML的惯用方式。

谢谢,
克莱曼

最佳答案

BeautifulSoup在描述中提到它是用于解析的库,而不是实际上从远程网站获取HTML的库。为此,您将需要另一个库,例如urllib(特别是函数urlopen,然后是它返回的对象中的read)。

至于为什么出现Python错误,open是为打开文件而不是HTML检索而设计的。如果您要打开一个包含HTML的本地文件,则您的代码将起作用。但是,因为您有一个URL作为参数,所以open实际上是在系统上寻找具有该名称的文件。由于该文件不存在,因此会引发错误。

关于python - BeautifulSoup4:FileNotFoundError用于打开URL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30584254/

10-13 09:22