从投注 site 中,我想收集投注率。检查页面后,我注意到这些费率包含在 eventprice 类中。按照 here 的解释,我因此用 Python 编写了这段代码,使用 Beautifulsoup 模块:
from bs4 import BeautifulSoup
import urllib.request
import re
url = "http://sports.williamhill.com/bet/fr-fr"
try:
page = urllib.request.urlopen(url)
except:
print("An error occured.")
soup = BeautifulSoup(page, 'html.parser')
regex = re.compile('eventprice')
content_lis = soup.find_all('button', attrs={'class': regex})
print(content_lis)
但是,我收到以下错误:
<块引用>"(...) 第 12 行,在 汤 = BeautifulSoup(page, 'html.parser') NameError: name 'page' 未定义"
答案 0 :(得分:2)
如果您打印异常详细信息,您将看到正在发生的事情:
try:
page = urllib.request.urlopen(url)
except Exception as e:
print(f"An error occurred: {e}")
输出
An error occurred: HTTP Error 403: Forbidden
Traceback (most recent call last):
File ".../main.py", line 12, in <module>
soup = BeautifulSoup(page, 'html.parser')
NameError: name 'page' is not defined
urlopen() 引发异常,导致未定义的“页面”变量。 在这种情况下,它是 403,这意味着您可能需要添加身份验证才能访问此 URL。
更新:
403 响应意味着无法以您尝试访问的方式访问此 URL。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/403