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

使用BeautifulSoup的WebScraping项目遇Error 403问题求助

解决WebScraping遇到403 Forbidden的方案

403 Forbidden是网站反爬机制的拦截结果,不属于实习训练里的“正常无法访问”情况,通过调整请求策略大多可以绕过,给你几个实操方案:

  • 添加请求头模拟浏览器
    网站会校验请求的User-Agent字段,默认爬虫请求无该字段或带有爬虫标识,会被直接拦截。你需要在请求中加入真实浏览器的User-Agent值,示例代码:

    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'
    }
    response = requests.get(url, headers=headers)
    

    真实的User-Agent可以从自己浏览器的开发者工具中复制获取。

  • 补充完整请求头字段
    部分网站还会校验Accept、Referer等字段,补充这些字段能提升请求的真实性,示例:

    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': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
        'Referer': 'https://www.proflowers.com/'
    }
    
  • 控制请求频率
    短时间内频繁发起请求会触发反爬机制,可在每次请求后添加延迟:

    import time
    time.sleep(2)  # 每次请求间隔2秒,可根据情况调整时长
    
  • 使用代理IP轮换
    如果你的IP被网站封禁,可以尝试使用代理IP轮换请求,示例:

    proxies = {
        'http': 'http://your-proxy-ip:port',
        'https': 'https://your-proxy-ip:port'
    }
    response = requests.get(url, headers=headers, proxies=proxies)
    

    注意免费代理稳定性较差,实习阶段可选择靠谱的免费代理池或低成本付费代理。

实习训练中遇到这类反爬场景是很常见的,刚好可以练习应对反爬的技巧,只要调整请求策略大多能解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 15:53:19