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

Scrapy CSS选择器在近似页面中一有效一无效的原因探究

选择器失效的具体原因

核心本质:动态内容异步加载差异

你遇到的问题根源在于两个页面的内容加载方式不同:

  • 页面putear的目标span.varpb元素是直接包含在服务器返回的初始静态HTML中的,所以Scrapy的选择器能直接匹配到;
  • 页面puteares的span.varpb元素是在页面加载完成后,通过Ajax异步请求获取数据并由JavaScript渲染到DOM中的,而Scrapy默认只会抓取服务器返回的初始HTML,不会执行页面的JS代码,因此抓取到的响应里根本没有这个元素,选择器自然返回空。

关键验证细节

  1. 对比两种"源码"的区别:
    • 在Scrapy中打印response.text并搜索span.varpb,会发现puteares页面的响应里完全没有这个元素;
    • 浏览器右键"查看页面源码"(初始静态HTML)同样找不到该元素,但开发者工具的Elements面板能看到——因为Elements面板展示的是JS执行后的完整DOM,而非服务器返回的初始内容。
  2. 你的排查结论是对的:Scrapy抓取的是不完整版本,缺失的就是Ajax加载的动态内容部分。

总结

选择器本身没有问题,失效的原因是目标元素不在Scrapy默认获取的初始HTML响应中,而是由后续Ajax请求动态生成的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 08:13:19