Python lxml不';如果文本具有<;br/>;?
我正在使用Python lxml不';如果文本具有<;br/>;?,python,text,lxml,elementtree,Python,Text,Lxml,Elementtree,我正在使用lxml解析web文档,我想获取元素中的所有文本,因此我使用以下代码: from lxml import etree page = etree.HTML("<html><p>test1 <br /> test2</p></html>") print page.xpath("//p")[0].text # this just print "test1" not "test1 <br/> test2" 从lx
lxml
解析web文档,我想获取
元素中的所有文本,因此我使用以下代码:
from lxml import etree
page = etree.HTML("<html><p>test1 <br /> test2</p></html>")
print page.xpath("//p")[0].text # this just print "test1" not "test1 <br/> test2"
从lxml导入etree
page=etree.HTML(“test1
test2”)
打印page.xpath(“//p”)[0].text#这只是打印“test1”而不是“test1
test2”
问题是我想获取
中的所有文本,在示例中是test1
test2
,但是lxml
只需给我test1
如何获取
元素中的所有文本?可能是这样的
from lxml import etree
pag = etree.HTML("<html><p>test1 <br /> test2</p></html>")
# get all texts
print(pag.xpath("//p/text()"))
测试1测试2
其他几种可能的方式:
p = page.xpath("//p")[0]
print etree.tostring(p, method="text")
或者使用XPathstring()
函数(注意XPath位置索引从1开始,而不是从0开始):
可能重复:@har07似乎我应该使用
text\u content()
,但是AttributeError:'lxml.etree.\u Element'对象没有属性“html\u content”
好的,因为您尝试使用text\u content()
我假设您想要的文本没有
。检查我的答案,了解一些可能的方法“我想获取
中的所有文本,即test1
test2
”。这是不对的。实际文本内容是test1 test2
。
元素是
的子元素,但它不是文本。
p = page.xpath("//p")[0]
print etree.tostring(p, method="text")
page.xpath("string(//p[1])")