解决BeautifulSoup访问Tapology指定UFC赛事页面随机跳转问题
解决Tapology网页爬取时URL被重定向的问题
你遇到的是网站反爬机制导致的重定向。Tapology会检测请求的客户端标识,默认requests库的请求头里的User-Agent是python-requests/x.x.x,很容易被识别为爬虫,网站就会把你重定向到随机赛事页面。
解决方案
- 给请求添加模拟真实浏览器的请求头,核心是设置
User-Agent字段,让请求看起来不是来自爬虫程序。 - 可以先打印响应的状态码和最终跳转后的URL,确认是否发生了重定向。
修改后的代码
from bs4 import BeautifulSoup import requests url = 'https://www.tapology.com/fightcenter/bouts/2093-ufc-76-the-dean-of-mean-keith-jardine-vs-chuck-the-iceman-liddell' # 模拟Chrome浏览器的请求头,你也可以换成其他浏览器的标识 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36' } response = requests.get(url, headers=headers, timeout=5) # 打印状态码和最终访问的URL,验证是否还会被重定向 print(f"请求状态码: {response.status_code}") print(f"最终访问URL: {response.url}") soup = BeautifulSoup(response.text, 'html.parser') fightstats = soup.find_all('td') fightresult = soup.find_all('div', class_='boutResultHolder') print(fightresult, fightstats)
如果添加User-Agent后还是有问题,可以尝试补充更多请求头字段(比如Accept-Language、Referer),或者使用requests.Session()保持会话,模拟浏览器的连续访问逻辑。另外注意不要频繁发送请求,避免触发网站的IP封禁机制。
内容的提问来源于stack exchange,提问作者Skipper1504
相关产品推荐
相关产品推荐

