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

bs4获取div自定义属性值不完整问题排查

问题排查结论

你的代码不存在BeautifulSoup解析层面的错误,拿到残缺链接是目标站点反爬机制导致的,和解析逻辑无关

具体原因
  • requests发起的请求只能拿到服务器直接返回的初始静态HTML源码,不会执行页面里的任何JavaScript代码。目标站点故意在初始返回的HTML里,把class为on_trailer_bottom节点的data-trailerlink属性值设为残缺的https://.freeserver.top,等页面在浏览器里加载完成后,才会通过内置JS把缺失的子域名、后续路径片段动态拼接到这个属性上。你在浏览器开发者工具Elements面板看到的完整链接,是JS运行修改过DOM之后的结果,不是requests拿到的原始内容。
  • 你可以直接打印site.text搜索on_trailer_bottom字段验证,会发现原始响应里这个属性本来就是残缺的,不是BeautifulSoup把值读错了。
解决方法
  • 优先选轻量方案:在静态源码里搜索和trailerlink、on_trailer_bottom绑定的JS代码,梳理清楚站点拼接完整预告片链接的规则,直接在代码里按规则补全残缺值就行,不需要额外加载浏览器,爬取效率最高。
  • 如果JS混淆太严重不好拆逻辑,就换用能执行JS的渲染类工具抓页面,比如Playwright、Selenium,等页面JS跑完、DOM渲染完成之后再提取目标属性,就能直接拿到完整链接。
  • 排查前置问题:先确认你传入的headers里带了真实浏览器的必填字段,比如正常的User-Agent、同域Referer,部分站点会给缺合法请求头的请求返回篡改后的残缺内容,先排除请求头配置问题再做后续调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 19:21:32