假设有一些 html 片段,例如:
<a>
text in a
<b>text in b</b>
<c>text in c</c>
</a>
<a>
<b>text in b</b>
text in a
<c>text in c</c>
</a>
我想在其中提取标签内的文本,但在保留其文本的同时排除这些标签,例如,我想在上面提取的内容就像“文本中的文本在 b 中的文本在 c 中”和“文本在 b 中文本公司中的文本”。现在我可以使用 scrapy Selector css() 函数获取节点,那么我该如何处理这些节点以获得我想要的呢?任何想法将不胜感激,谢谢!
最佳答案
这是我设法做到的:
from scrapy.selector import Selector
sel = Selector(text = html_string)
for node in sel.css('a *::text'):
print node.extract()
假设 html_string
是一个保存问题中 html 的变量,此代码会产生以下输出:
text in a
text in b
text in c
text in b
text in a
text in c
选择器 a *::text()
匹配所有 a
节点的后代文本节点。
关于python - 如何使用 scrapy Selector 获取节点的 innerHTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28658047/