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

Scrapy技术疑问:如何从多层div、span标签中精准提取目标数据

解决Scrapy提取HTML目标文本的问题

嘿,我来帮你搞定这个提取"Chicago"文本的问题!你现在用response.css('#info1').extract_first()拿到的是整个<div id="info1">的完整HTML内容,自然会包含大量冗余标签和属性。根据你给出的HTML结构,这里有几个精准提取目标文本的方法:

  • 方法一:定位到a标签的文本节点
    直接使用CSS选择器定位到包含目标文本的<a>标签,并用::text提取其纯文本内容:

    response.css('#info1 span a::text').extract_first()
    

    这个选择器的逻辑是:先找到id为info1的div,再定位到它下面的span,最后选中span里的a标签,提取其文本。

  • 方法二:简化选择器路径
    如果确认该div下只有这一个<a>标签,还可以简化选择器,省去中间的span层级:

    response.css('#info1 a::text').extract_first()
    
  • 方法三:使用XPath提取
    如果你更习惯用XPath,也可以这样写:

    response.xpath('//div[@id="info1"]//a/text()').extract_first()
    

为什么原来的方法会返回冗余内容?

extract_first()方法默认会返回选中元素的完整HTML代码(包括所有嵌套标签、属性等),而加上::text(CSS)或/text()(XPath)后,就会只提取元素内部的文本节点,从而得到你需要的"Chicago"。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:09:12