获取源代码行lxml python中的所有元素

时间:2018-02-21 08:38:44

标签: python html xml xpath lxml

我正在使用python中的.xpath方法提取一些html信息并查询它。对于一个特定的应用程序,我想提取属于特定源代码的所有元素。例如

with open(self.file_path, 'r') as f:
    page = f.read()
tree = html.fromstring(page)
all = tree.xpath(r'/html/body//a')
print(all[5].sourceline)

以上产生的源代码编号为14,其中包含以下源代码html。

26) <a name="l26" style="background-color: #ffffff">        subroutine </a><a style="background-color: #ffcccc">AdjustParticleDiscretisation()</a>

如何使用源代码而不是传统的xpath查询提取此html的所有内容?或者xpath是否有一些源代码可识别的语法?

由于

1 个答案:

答案 0 :(得分:2)

如果您有兴趣在页面上显示内容,可以使用:all[5].text,如下所述:http://lxml.de/api/lxml.etree._Element-class.html#text

如果您需要该元素的实际html,可以使用ElementTree的tosstring方法: import xml.etree.ElementTree as etree etree.tostring(all[5])

另外,正如CristFati所提到的,尽量避免使用all作为变量,因为它是一个python内置函数,并且你已经覆盖了它的引用。 https://docs.python.org/3/library/functions.html#all

相关问题