首页 > 解决方案 > GET 和/或 BeautifulSoup FanDuel 网络抓取的接收证书/403 错误

问题描述

我正在尝试抓取以下页面:https ://www.fanduel.com/games/57764/contests/57764-245891325/scoring

以下使用 urlopen() 的代码产生了证书验证失败错误:

url = 'https://www.fanduel.com/games/57764/contests/57764-245891325/scoring'
html = urlopen(url)
soup = BeautifulSoup(html, 'html.parser')

错误:urllib.error.URLError:<urlopen 错误 [SSL:CERTIFICATE_VERIFY_FAILED] 证书验证失败:证书链中的自签名证书 (_ssl.c:1123)>

我也尝试使用以下代码,但我收到了 <response [403]>

html = f'https://www.fanduel.com/games/57764/contests/57764-245891325/scoring'
r = get(html, verify=False)

非常感谢任何有关抓取此站点的建议,无论是代码更新还是建议使用不同的网络抓取包。谢谢!

更新 PER Maxlovesairandteslas 回应:

我现在遇到一个新错误。在响应中它说:访问此页面已被拒绝。我这样更新了我的代码,所以我假设我至少进入了适当的页面,现在被拒绝了:

with requests.Session() as s: 
   p = s.post("fanduel.com/login", verify=False, data={"email": "","password": ""}) 
   base_page = s.get('fanduel.com/games/57764/contests/57764-245891325/scoring')#, headers=headers) 
   soup = BeautifulSoup(base_page.content, 'html.parser')
   print(soup.prettify())

标签: pythonweb-scrapingbeautifulsoupget

解决方案


似乎您需要先登录该网站才能玩游戏。就像@MendelG 所说的那样,试试这个:登录网站


推荐阅读