You need to enable JavaScript to run this app. Python爬取OLX广告页面时XPath获取下一页链接返回空数组的求助
优惠活动
大模型
产品
解决方案
定价
更多

Python爬取OLX广告页面时XPath获取下一页链接返回空数组的求助

定位失效的核心原因
  • 基础语法错误:当前XPath写法中使用了大写的Div标签,lxml解析XPath时对标签名大小写严格匹配,而页面实际的分页容器标签是小写的div,写法不匹配会直接导致返回空数组。
  • 类名逻辑失效:OLX采用CSS-in-JS的样式生成方案,sc-hmzhuo、inUUEM这类类名是构建阶段随机生成的哈希值,会随版本更新、页面加载动态变化,写死全类名做精确匹配的逻辑无法长期稳定命中目标节点,和之前参考的电商教程分页DOM结构不兼容。
可落地的修复方案
  • 先修正基础语法:将XPath中的大写Div替换为小写div,排除基础书写错误。
  • 替换类名匹配逻辑,放弃全类名精确匹配,改用稳定特征定位节点:
    • 用contains()方法匹配类名中固定不变的片段,避开随机生成的哈希类名:
      # 定位类名包含分页容器特征的节点,再筛选指向后续页面的链接
      next_page = h.xpath('//div[contains(@class, "pagination")]//a[contains(text(), "Next")]/@href')
      
    • 优先匹配带固定语义的节点属性,这类属性不受动态样式类名变化影响:
      # 匹配标注了翻页语义的链接,稳定性远高于类名匹配
      next_page = h.xpath('//a[contains(@aria-label, "Next page")]/@href')
      
  • 调试注意事项:编写XPath时逐层缩小定位范围,每完成一层定位就打印返回值确认命中状态,不要直接照搬旧教程中的固定类名规则,这类动态类名的生命周期通常只有几天到几周。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.04 18:45:04