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

Scrapy爬取返回指定元素外数据的问题排查

问题排查与解决办法
  • 核心原因:XPath路径未限定搜索范围
    你使用的//a[contains(@href,'/player/')]/span/span/text()是全局搜索路径(//代表从文档根节点开始遍历所有匹配节点),哪怕你先获取了batting_scorecard节点,但后续XPath没有基于这个节点做相对搜索,会直接遍历整个页面,自然会命中裁判表、投球表等其他区域的球员链接。

  • 次要原因:目标表格的class存在复用
    页面里不止击球得分表使用ci-scorecard-table这个class,投球表、裁判相关表格也可能复用了该类名。如果获取batting_scorecard时没有更精准的筛选,拿到的可能是多个表格,进一步扩大了无关数据的匹配范围。


解决办法

  1. 限定XPath相对搜索范围
    基于已获取的batting_scorecard节点,使用相对路径搜索(开头用.//,表示从当前节点内部查找):

    .//a[contains(@href,'/player/')]/span/span/text()
    

    这样只会从目标击球表内部提取球员姓名,不会涉及页面其他区域。

  2. 精准定位击球得分表
    为避免误获取同class的其他表格,可结合击球表的专属容器特征来定位:

    //div[contains(@class,'ci-batting-table')]/table[contains(@class,'ci-scorecard-table')]
    

    先锁定击球表的专属父容器,再获取内部表格,确保拿到的是正确的目标数据区域。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 04:45:37