这是使用Scrapy。
我遇到以下类型的标记:
<p>Noting the presence of a footnote<sup>1</sup> is one common way for superscripts to be used.</p>
测试页:
https://html.com/tags/sup/
测试查询:
response.css('div.render p::text')[0].extract()
测试ItemLoader:
loader.add_css("text", "div.render p::text")
测试结果:
注意到有脚注
预期测试:
注意脚注的存在是上标使用的一种常见方式。
问题:
如何忽略段落标签而获得段落的全文?
答案 0 :(得分:1)
我不知道scrapy是否具有忽略嵌套<sub>
的适当选择器。我建议您使用re
模块以忽略该子级。顺便说一下,从长远来看,这不是一个解决方案。您不应该使用正则表达式解析HTML。有关更多信息,请查看此线程RegEx match open tags except XHTML self-contained tags
尝试一下:
import re
def parse(self,response):
extracted_p_tag=response.css('div.render p').get()
ignored_sup=re.sub('<sup>(.*)</sup>','',extracted_p_tag)