使用Python和Beautiful soup进行网页抓取:错误"';第'页;“未定义”;
从一个投注,我想收集投注率。在查看页面后,我注意到这些费率包含在eventprice类中。按照的解释,我使用Beautifulsoup模块用Python编写了这段代码:使用Python和Beautiful soup进行网页抓取:错误"';第'页;“未定义”;,python,beautifulsoup,Python,Beautifulsoup,从一个投注,我想收集投注率。在查看页面后,我注意到这些费率包含在eventprice类中。按照的解释,我使用Beautifulsoup模块用Python编写了这段代码: from bs4 import BeautifulSoup import urllib.request import re url = "http://sports.williamhill.com/bet/fr-fr" try: page = urllib.request.urlopen(url)
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行,在
soup=BeautifulSoup(页面,'html.parser')名称错误:未定义名称“页面”
如果打印异常详细信息,您将看到发生了什么:
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
发生错误:HTTP错误403:禁止
回溯(最近一次呼叫最后一次):
文件“../main.py”,第12行,在
soup=BeautifulSoup(页面“html.parser”)
名称错误:未定义名称“页面”
urlopen()引发异常,导致未定义的“page”变量。
在本例中,它是403,这意味着您可能需要添加身份验证才能访问此URL
更新:
403响应表示无法以您尝试访问此URL的方式访问此URL
如果打印异常详细信息,您将看到发生了什么:
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
发生错误:HTTP错误403:禁止
回溯(最近一次呼叫最后一次):
文件“../main.py”,第12行,在
soup=BeautifulSoup(页面“html.parser”)
名称错误:未定义名称“页面”
urlopen()引发异常,导致未定义的“page”变量。
在本例中,它是403,这意味着您可能需要添加身份验证才能访问此URL
更新:
403响应表示无法以您尝试访问此URL的方式访问此URL
好吧,如果
try
不成功,那么页面
就不会被定义。好吧,如果try
不成功,那么页面
就不会被定义。谢谢你的回答。“添加身份验证”是什么意思?如果问题是身份验证,则通常是401响应,而不是403。投注服务器正在返回HTTP 403状态,其含义在此处详述:。我认为,与401A403不同,401A403意味着无法以您正在尝试的方式访问您正在尝试的URL。有趣的是,我尝试了curl,结果它返回了200。通过添加-H“User-Agent:Python-urllib/3.9”,我再次获得了403。看起来他们是在根据用户代理字符串进行过滤,以阻止人们浏览他们的网站。谢谢你的回答。“添加身份验证”是什么意思?如果问题是身份验证,则通常是401响应,而不是403。投注服务器正在返回HTTP 403状态,其含义在此处详述:。我认为,与401A403不同,401A403意味着无法以您正在尝试的方式访问您正在尝试的URL。有趣的是,我尝试了curl,结果它返回了200。通过添加-H“User-Agent:Python-urllib/3.9”,我再次获得了403。看起来他们是在根据用户代理字符串进行过滤,以阻止人们浏览他们的网站。