我的HTML看起来像这样:
<span>
Word 1
Sentence 1
</span>
我可以用以下方法提取它:
//span/text()
这给了我
Word 1
Sentence 1
在XPATH中是否可以分别获取/提取Word 1和Sentence 1? (Python中用于Scrapy的XPath提取器)
我尝试过:
//span/text()[1]
//span/text()[2]
substring-before(//span/text(),'\n')
但两者都是疯狂的猜测,无法正常工作。
答案 0 :(得分:1)
您可以使用的第一项“单词1”
normalize-space(substring-before(substring-after(translate(span/text(),'
',''),'
'),'
'))
并获得第二项“句子1”,
normalize-space(substring-after(substring-after (translate(span/text(),'
',''),'
'),'
'))
如果不需要,可以删除normalize-space(...)
。
上下文节点应为span
的父节点,否则您应在表达式前加上//
。您的主要问题是第一项之前有换行符(\n
)。
编辑:
我添加了一个解决方案,用于处理Windows CR
的{{1}}字符。它只是删除CRLF
字符并作用于CR
字符。
答案 1 :(得分:0)
请参见a previous question,以了解如何正确访问元素的内部内容。
然后,处理输出字符串以适合您的需求。