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

Scrapy如何选择第二个AA类div及其中的第二个span文本?

解决Scrapy CSS选择器定位问题

我来帮你搞定这个定位和提取的问题,用CSS选择器就能轻松实现:

首先,要选中第二个同时带有AA和BB类的div,可以用CSS的:nth-of-type(2)伪类,它会匹配同类型元素中的第二个。对应的选择器是div.AA.BB:nth-of-type(2)——这里.AA.BB表示同时拥有这两个类的div元素,确保不会误选其他只带单个类的元素。

接下来,在这个div里定位第二个span,同样用:nth-of-type(2)选中该div下的第二个span标签,再通过::text提取它的文本内容。

修改后的代码应该是这样的:

def parse(self, response):
    # 定位第二个AA.BB类的div
    target_div = response.css('div.AA.BB:nth-of-type(2)')
    # 提取该div内第二个span的文本
    result_text = target_div.css('span:nth-of-type(2)::text').get()
    # 可以打印或者进一步处理结果
    if result_text:
        print(f"提取到的目标文本:{result_text}")

小补充:

  • 如果页面中这些div是同级的兄弟元素,:nth-of-type(2)是最准确的;如果结构有嵌套,也可以考虑用:nth-child(2),不过前者只针对同标签类型的元素,容错性更强。
  • .get()方法会返回第一个匹配到的结果(这里我们只需要一个),如果需要批量提取同类型结果可以用.getall()。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:44:04