我一般都是通过xpath解析DOM树的时候会使用lxml的etree,可以很方便的从html源码中得到自己想要的内容。

这里主要介绍一下我常用到的两个方法,分别是etree.HTML()和etree.tostrint()。
1.etree.HTML()
etree.HTML()可以用来解析字符串格式的HTML文档对象,将传进去的字符串转变成_Element对象。作为_Element对象,可以方便的使用getparent()、remove()、xpath()等方法。
如果想通过xpath获取html源码中的内容,就要先将html源码转换成_Element对象,然后再使用xpath()方法进行解析。例如,这里有一段最简单的html源码:"<html><body><h2>This is a test</h2></body></html>",现在想要得到h2标签中的文本,可以这样实现:
# encoding=utf8
from lxml import etree
html = '<html><body><h2>This is a test</h2></body></html>'
# 将html转换成_Element对象
_element = etree.HTML(html)
# 通过xpath表达式获取h2标签中的文本
text = _element.xpath('//h2/text()')
print 'result is: ', text