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

BeautifulSoup提取ng-binding类div节点时文本值缺失如何解决?

问题原因

1. 类名选择器写法错误

Python字典的key具有唯一性,你写的{"class":"ng-binding", "class":"ng-scope"}中重复的class key会被后定义的值覆盖,实际生效的筛选条件只有class="ng-scope",属于错误写法。
正确的多类名匹配方式有两种:

  • 用class_参数传入类名列表:
price_value = price.find('div', class_=["ng-binding", "ng-scope"])
  • 直接传入空格拼接的完整类名字符串:
price_value = price.find('div', class_="ng-binding ng-scope")

2. 动态渲染内容未加载

你提取到的空div是页面原始HTML的真实结构,目标价格文本是Angular框架在客户端运行JS代码后动态插入的内容,如果你直接使用requests等工具请求原始HTML,没有执行页面JS的话,自然无法拿到动态生成的文本值。

解决方案

  • 改用支持JS渲染的爬取工具,比如Selenium、Playwright、Pyppeteer,这类工具会调用浏览器内核执行页面JS,等内容渲染完成后再提取即可拿到目标文本。
  • 抓包获取页面加载价格数据的后端接口,直接调用接口获取JSON格式的价格数据,稳定性比解析HTML更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 05:09:02