我正在使用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是否有一些源代码可识别的语法?
由于
答案 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