在使用lxml中的etree.parse()方法解析HTML页面源码的时候,可能会报错:lxml.etree.XMLSyntaxError。出现这个问题的主要原因是:html代码书写不规范,不符合xml解析器的使用规范。
解决方法
修改代码如下:
- 解析本地的HTML源码文件,假设其为:XX.html,根据实际更改。
parser = etree.HTMLParser(encoding="utf-8")
tree = etree.parse('XX.html', parser=parser)
- 解析从互联网获取的HTML源码数据。
page_text = requests.get(url, headers).text
parser = etree.HTMLParser(encoding="utf-8")
tree = etree.HTML(page_text, parser=parser)