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

Scrapy多HTML标签数据提取问题:如何获取完整文本

解决Scrapy提取嵌套标签文本不完整的问题

你的问题出在XPath的text()用法上——/text()只能获取当前节点的直接子文本节点,而<p>里嵌套的<strong>或<a>标签的文本是它们的子节点,自然不会被提取到。给你两种简单的解决方法:

方法1:提取所有后代文本再拼接

用//text()选取目标节点下所有层级的文本节点,再用字符串拼接得到完整内容:

full_text = ''.join(response.xpath('//div[@class="whatever3"]/p[2]//text()').extract()).strip()
  • //text():匹配<p[2]>下所有后代的文本节点,不管嵌套多少层标签
  • ''.join():把提取到的文本列表拼接成完整字符串
  • .strip():移除首尾多余的空格或换行

方法2:使用XPath的string()函数(更简洁)

直接用string()函数获取目标节点内的全部文本内容,包括嵌套标签里的内容:

full_text = response.xpath('string(//div[@class="whatever3"]/p[2])').get()

这个方法一步到位,不需要额外拼接,返回的就是完整的"The cat sat on the mat."字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 16:29:53