Xml 如何在XPath中获取选定元素的文本?
我尝试使用标准XPath方法提取几个论坛帖子:Xml 如何在XPath中获取选定元素的文本?,xml,xpath,web-scraping,scrapy,Xml,Xpath,Web Scraping,Scrapy,我尝试使用标准XPath方法提取几个论坛帖子: response.xpath('.//div[contains(@class,“Message userContent”))) 这一个返回一个完整的评论列表 但是,一旦我包含//text()或字符串(…)列表的长度会增加到100或150个项目,这使得不可能掌握或迭代列表并将其与其他数据(如作者或日期)连接起来 规范化空格(…)只返回第一条注释 它必须处理html代码中的所有新行和中断,但在这个阶段我不知道如何处理这些 字符串连接(…[normali
response.xpath('.//div[contains(@class,“Message userContent”)))
这一个返回一个完整的评论列表
但是,一旦我包含//text()
或字符串(…)
列表的长度会增加到100或150个项目,这使得不可能掌握或迭代列表并将其与其他数据(如作者或日期)连接起来
规范化空格(…)
只返回第一条注释
它必须处理html代码中的所有新行和中断,但在这个阶段我不知道如何处理这些
字符串连接(…[normalize-space()])
会是这里的一个选项吗?了解每个XPath选择的内容:
//div[包含(@class,“Message userContent”)]
选择div
元素//div[包含(@class,“Message userContent”)]//text()
选择那些div
元素的所有文本节点后代div
元素的空间规范化字符串值normalize-space(.//div[contains(@class,“Message userContent”)])
在传递序列时是一个运行时错误div的字符串值
:
- XPath 1.0:迭代宿主中选定的
元素 语言,分别取字符串值div
- XPath2.0:将
附加到XPath/string()
text()
,string()
,normalize-space()
…共享HTML代码以及所需的输出和提到的XPath表达式。感谢您的概述!我认为最后一部分有帮助。我需要找出迭代部分,以及如何从列表中取出字符串值。文本直接放置在div元素中。。。blablabla…您可以通过#2中的XPath获得直接子文本节点的列表,但最后使用/text()
而不是/text()
。如果选定的div
元素下没有标记,那么这个文本节点列表可能就满足您的需要。