我正在使用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/