繁体   English   中英

如何提取<strong>元素中标签</strong>后面的文本

[英]How to extract text which lies after <strong> tag in element

尝试从元素中提取文本,如下所示:

<div><strong>"Beginning_of_text"</strong>"Rest_of_text"</div>

当我尝试使用Scrapy shell提取"Rest_of_text"

response.css("div::text").extraxt()

它什么也没给我。 我是否必须使用一些特殊命令来获取位于元素内<strong>标记之后的文本?

仅对于“ Rest_of_text”,可以使用response.xpath('//div/strong/following-sibling::text()').get()

给定您提供的文本,您提到的命令应该返回以下内容:

['"Rest_of_text"']

如果在strong标签之前有空格,则可能会出现此问题,例如:

<div>   <strong>"Beginning_of_text"</strong>"Rest_of_text"</div>

在这种情况下,如果执行相同的命令,则会得到以下信息:

['   ', '"Rest_of_text"']

但是,如果在strong标签之后没有任何内容,您将得到以下信息:

['   ']

处理我所知道的所有这些情况的最佳方法是执行以下操作:

>>> full_text = ''.join(response.xpath('//div//text()').extract())
>>> before_strong, after_strong = full_text.split(response.css('strong::text').extract_first())

因此,在您提供的文本中, before_strong将等于''after_strong将等于'"Rest_of_text"' ,这似乎就是您想要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM