You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WebScraper无法获取数据但浏览器可访问网站的问题求助

问题分析与解决办法

1. 核心问题排查

你遇到的情况大概率是两个原因叠加导致:

  • 短时间内重复请求触发了网站的反爬机制,限制了你的IP访问
  • 代码本身存在逻辑缺陷,递归调用完全失效

2. 代码逻辑缺陷修复

你的get_links函数不管传入什么page_url,始终固定请求首页地址,递归时传入的拳手详情页链接根本没被使用,导致程序一直在重复爬首页;且无终止条件的递归会加剧反爬触发概率。修复后的代码如下:

import os
import time
from urllib.request import urlopen, Request
from bs4 import BeautifulSoup
import re

os.system('cls')

base_url = 'https://boxrec.com'
heavy = 'https://boxrec.com/en/ratings?r%5Brole%5D=box-pro&r%5Bsex%5D=M&r%5Bstatus%5D=a&r%5Bdivision%5D=Heavyweight&r%5Bcountry%5D=&r_go='

pages = set()

def get_links(page_url):
    print(f"crawling: {page_url}")
    global pages
    # 处理相对链接,拼接完整URL
    full_url = page_url if page_url.startswith('http') else base_url + page_url
    try:
        # 模拟浏览器请求头
        req = Request(full_url, headers={
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36',
            'Accept-Language': 'zh-CN,zh;q=0.9',
            'Referer': base_url
        })
        html = urlopen(req)
        # 检查请求是否成功
        if html.getcode() != 200:
            print(f"请求失败,状态码: {html.getcode()}")
            return
        bs = BeautifulSoup(html.read(), 'html.parser')
        # 抓取目标链接
        for link in bs.find_all('a', href=re.compile('^(/en/box-pro/)')):
            if 'href' in link.attrs:
                link_href = link.attrs['href']
                if link_href not in pages:
                    print(link_href)
                    pages.add(link_href)
                    # 添加请求延迟,避免触发反爬
                    time.sleep(1)
                    get_links(link_href)
    except Exception as e:
        print(f"请求出错: {str(e)}")
        return

get_links(heavy)

print("crawling done.")

3. 反爬规避措施

  • 控制请求频率:每次请求后添加1秒延迟(time.sleep(1)),模拟人类浏览节奏
  • 完善请求头:补充Accept-Language、Referer等字段,让请求更接近真实浏览器
  • 避免重复爬取:用pages集合记录已爬链接,减少无效请求
  • 排查拦截状态:如果仍无数据,可在请求后打印响应内容,确认是否返回验证码或封禁提示

内容的提问来源于stack exchange,提问作者Spirula

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 12:25:30