问题描述
使用lxml.etree.parse()解析html文件,该方法默认使用的是“XML”解析器,所以如果碰到不规范的html文件时就会解析错误,报错代码如下:
lxml.etree.XMLSyntaxError: Opening and ending tag mismatch: meta line 4 and column
问题解决
自己创建html解析器,增加parser参数
from lxml import etreeparser = etree.HTMLParser(encoding="utf-8")
tree = etree.parse("test.html", parser=parser)
r_list = tree.xpath('/html/head/title')