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

如何用单个选择器选取指定同级元素?Scrapy爬取节点提取问题

用单个XPath选择器获取Type4元素

这问题我熟!要精准定位到所有Type4的<li>元素,咱们可以利用XPath的兄弟节点定位特性,刚好你的结构里有个固定的标记点——<li class="a">Titles Type3</li>,它就是Type4元素的前置锚点。

直接用这个单个选择器就行:

//li[preceding-sibling::li[@class='a' and text()='Titles Type3'] and @class='c']

选择器逻辑拆解:

  • preceding-sibling::li[@class='a' and text()='Titles Type3']:筛选出**前面存在一个class为a且文本是Titles Type3的兄弟<li>**的元素,这一步把Type2的那些class="c"的li排除了,因为它们的前置锚点是Type1的那个li,不是Type3的。
  • and @class='c':再加上这个条件,确保我们选到的是Type4对应的class="c"的li元素。

在Scrapy里使用的话,代码大概是这样:

# 假设response是你的响应对象
type4_items = response.xpath("//li[preceding-sibling::li[@class='a' and text()='Titles Type3'] and @class='c']/text()").getall()

这样不管Type2和Type4的数量怎么变,只要Type3的那个li是固定存在的,就能准确拿到所有Type4的内容啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:34:46