标签:lxml 字符 lang blank 记忆 一个 children span 数据
text() selects all text node children of the context node
text()获取当前结点下的子文本结点.(不是获取后裔结点的文本结点)
注意,text()不是函数,是文本结点,文本结点从属于其父结点,所以
./text()
只能获取位于其子节点位置的文本结点,不会获取位于其后裔结点位置的文本结点,想要获取一个标签下的所有文本数据,就需要用.//text()
string($arg) : DOC 获取当前结点下的所有文本内容的字符串.具体用法在DOC中有,$args其中一种值是xpath表达式,函数返回xpath表达式所选结点下面的所有文本内容组成的字符串,就像是在浏览器中看到的那样.
简单记忆就是text()获取的是一个字符串列表,string()获取的是字符串.
例子
from lxml import etree
st = ‘‘‘
<html>
<body>
<div>
div的文本结点
<p>p标签的文本</p>
<a href=""><span>文本</span> 链接</a>
<span>span</span>
</div>
</body>
</html>
‘‘‘
tree = etree.HTML(st)
print(tree.xpath(‘//div//text()‘))
# 结果
# [‘\ndiv的文本\n‘, ‘p标签的文本‘, ‘\n‘, ‘文本‘, ‘ 链接‘, ‘\n‘, ‘span‘, ‘\n‘]
print(tree.xpath(‘string(//div)‘))
# 结果
#
#div的文本
#p标签的文本
#文本 链接
#span
#
标签:lxml 字符 lang blank 记忆 一个 children span 数据
原文地址:https://www.cnblogs.com/bugs-killer/p/14660640.html