python - 在“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
这是结果。
解决方案
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
的,旨在提供更复杂的保护