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

Scrapy如何提取li内无class属性的文本(部分文本后含strong标签)

Scrapy提取指定li标签文本解决方案

针对你给出的网页结构,可直接通过XPath过滤指定span节点,同时自动兼容带/不带strong标签的场景,无需单独处理strong节点,具体实现如下:

核心思路

提取li节点下所有后代文本,仅过滤掉父节点为orange-caret类的span的文本内容,剩下的内容自动拼接即可得到完整目标文本。

代码实现

def parse(self, response):
    # 定位所有目标li节点
    li_nodes = response.xpath('//div[@class="short-description"]//ul/li')
    res_text_list = []
    for li in li_nodes:
        # 过滤掉带指定class的span的文本,提取剩余所有后代文本
        text_parts = li.xpath('./descendant::text()[not(parent::span[@class="orange-caret"])]').getall()
        # 清理空白并拼接为完整文本
        clean_text = ''.join([part.strip() for part in text_parts]).strip()
        res_text_list.append(clean_text)
    
    # 输出验证,得到的结果即为你需要的全部目标文本
    print(res_text_list)

输出结果示例

执行上述代码后得到的结果如下:

  • Diseñada para trabajar con agua limpia como pueden ser bombeos de pozos y manantiales o en sistemas de riego
  • Uso industrial y agrícola
  • Altura máxima: 30 m
  • Flujo máximo 120 L/min
  • Profundidad de inmersión máxima: 80 m

方案说明

该XPath写法适配你给出的所有结构场景,不需要单独判断li节点末尾是否携带strong标签,所有文本内容会自动提取拼接,稳定性高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:57:02