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

使用bs4抓取天赋构建列表为空的问题排查求助

问题排查与解决建议

1. 先确认请求是否成功获取有效页面内容

  • 打印response.status_code,确认返回值为200。若返回403/404等状态码,说明请求被网站拦截,需添加请求头模拟浏览器:
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
    }
    response = requests.get('https://www.icy-veins.com/heroes/hogger-talents', headers=headers)
    
  • 打印response.text的前1000字符,检查是否拿到真实页面内容,而非反爬提示页(如验证码、JS启用提示)。

2. 核对元素选择器是否匹配当前页面结构

网站页面结构可能更新,需重新定位元素:

  • 打开目标页面按F12调出开发者工具,用元素选择器定位天赋构建的父容器:比如天赋构建通常在带特定class的div/section标签内(如talent-build-container类)
  • 确认天赋构建名称的标签层级:若找不到h3,可能标签已改为h2或带特定class的h3(如build-title),需调整选择器

3. 排查是否为JavaScript动态加载内容

如果天赋数据是通过JS渲染的,直接用requests+bs4无法获取:

  • 打开开发者工具「网络」标签,刷新页面后筛选「XHR/Fetch」请求,找到返回天赋数据的接口,直接请求接口获取数据更稳定
  • 若必须渲染页面,可改用selenium或playwright模拟浏览器加载JS后再解析

4. 分步调试定位问题

  • 逐步打印中间结果:先打印所有匹配的父容器列表,再在每个容器内单独查找名称、等级天赋元素,定位哪一步返回空值
  • 尝试用bs4的select方法替代find_all,支持CSS选择器更灵活,例如:soup.select('div.talent-build-group > div.build-item')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 20:00:02