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

使用Scrapy爬取印度银行网点定位页面无法获取表格数据是什么原因

问题原因及解决方案

首先明确:你的代码本身没有逻辑错误,问题出在站点做了特殊的反爬和渲染处理。

核心原因

1. 请求头校验机制

站点会校验请求的头信息,浏览器正常访问时会携带完整的User-Agent、Cookie、Referer、Accept等标识,而Scrapy默认发送的请求头特征非常明显,站点识别到是爬虫请求后,只会返回无数据的HTML骨架,不会加载表格内容。

2. 前端动态渲染

该页面的表格数据并非直接嵌入在初始HTML中,而是页面加载完成后,由前端JS异步调用后端接口拉取数据,再动态渲染到页面上的。Scrapy默认不会执行JS代码,因此只能拿到未渲染的原始HTML,自然匹配不到你写的XPath路径对应的元素。

可行的解决方法

  • 优先抓异步接口:打开浏览器F12开发者工具的「网络」面板,切换分页时筛选XHR/Fetch类型的请求,就能找到拉取分行数据的后端接口,直接请求该接口获取结构化的JSON数据即可,效率远高于解析HTML。
  • 对接JS渲染工具:如果接口有加密不好分析,可以让Scrapy对接Selenium、Playwright等无头浏览器工具,模拟浏览器执行JS拿到完整渲染后的页面,再用你原来的XPath逻辑解析即可。
  • 提取内嵌JS数据:部分站点会把初始页的数据内嵌在页面的JS代码段中,你可以查看返回的原始HTML源码,如果能找到对应的数据段,用正则或者字符串提取即可,不需要额外渲染。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:18:03