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

如何提取div中三个文本里的第二个文本?Scrapy CSS选择器问题

提取div标签中的第二个文本内容

你用 response.css('div.ml-1::text').get() 只能拿到第一个文本节点,因为 .get() 方法默认只返回匹配到的第一个结果。

解决方法有两种:

  • 先获取所有匹配的文本节点列表,再取第二个元素(Python列表索引从0开始):
    second_text = response.css('div.ml-1::text').getall()[1]
    
  • 直接用CSS伪类选择器定位第二个文本节点:
    second_text = response.css('div.ml-1::text:nth-of-type(2)').get()
    

简单解释下:::text 会选中目标div下的所有直接文本节点,.getall() 会把这些文本全部收集成列表;而 :nth-of-type(2) 可以在CSS选择阶段就精准定位到第二个文本节点,再用 .get() 就能直接拿到内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 00:47:02