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

为何Scrapy Shell返回空列表,Chrome元素面板XPath选择器却正常?

解决Scrapy XPath选择器返回空但Chrome能选中的问题
  • 问题本质:你目标页面的竞拍成交数据是通过JavaScript动态渲染生成的。Scrapy默认抓取的是服务器直接返回的原始HTML,里面并没有chr-lot-header__bid-details、chr-lot-header__value-field这些元素,所以XPath选择器返回空列表;而Chrome的「Elements」面板展示的是JS执行完成后的完整DOM结构,自然能选中目标标签。

  • 可行解决方案:

    1. 抓包获取API接口:打开Chrome开发者工具的「Network」面板,刷新页面后筛选「XHR/Fetch」类型请求,找到返回竞拍数据的接口。这类接口通常会返回JSON格式数据,直接从中提取GBP 11,282,500比解析DOM更高效。
    2. 使用渲染工具模拟浏览器:如果不想分析API,可以用Scrapy-Splash这类工具模拟浏览器渲染页面。配置好Splash服务后,在Scrapy中用SplashRequest替代普通Request,就能获取到包含动态渲染内容的响应,此时你原来的XPath选择器就能正常提取目标内容。
  • 快速验证方法:在Scrapy Shell中执行fetch("https://www.christies.com/en/lot/lot-5973059")后,打印response.text查看原始HTML,你会发现里面确实没有目标元素,这就坐实了动态加载的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 23:50:14