首页 > 解决方案 > 在“whoscored.com”上使用 Python 进行网络爬取错误

问题描述

来自 bs4 的导入请求 import BeautifulSoup

user_agent = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'}
page = requests.get("https://www.whoscored.com/Regions/252/Tournaments/2/England-Premier-League", headers=user_agent)
soup = BeautifulSoup(page.text,'html.parser')


print(soup)

我正在尝试在“whoscored.com”上进行网络爬网,但我无法获得所有 HTML 告诉我解决方案。

请求不成功。封装事件ID:946001050011236585-61439481461474967

这是结果。

标签: pythonsoapbeautifulsoup

解决方案


from selenium import webdriver
import time
from bs4 import BeautifulSoup

browser = webdriver.Firefox()

url = 'https://www.whoscored.com/Regions/252/Tournaments/2/England-Premier-League'
sada = browser.get(url)
time.sleep(3)
source = browser.page_source
soup = BeautifulSoup(source, 'html.parser')
print(soup.prettify())

这里有几个问题。根本原因是您尝试抓取的网站知道您不是真人并且正在阻止您。许多网站只是通过检查标头来查看请求是否来自浏览器来做到这一点(robot)。但是,这个站点看起来像他们使用Incapsula的,旨在提供更复杂的保护


推荐阅读