You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

lxml的etree.fromstring解析网页报错求助及替代方案咨询

问题根源与解决方案

核心问题

你误用了XML解析方法处理HTML内容:etree.fromstring()是用于解析严格符合XML规范的文档,但绝大多数网站的HTML都存在不规范写法(比如未闭合标签、特殊字符未转义、属性格式不严谨等),这就是所有网站都报错的原因——和环境无关,是用法错误。

修正代码

把etree.fromstring()替换为专门处理HTML的etree.HTML()方法,它会自动兼容不规范的HTML结构:

driver.get('https://www.google.com.br/') 
data = driver.page_source
tree = etree.HTML(data)  # 改用HTML解析器

各错误原因说明

  • 谷歌页面报错:页面中存在未转义的&符号(比如URL参数里的&),XML要求必须转义为&,但HTML允许直接使用,XML解析器无法识别。
  • 维基百科页面报错:存在未正确闭合的标签(比如<link>标签省略了闭合标签),XML要求所有标签必须成对闭合,而HTML允许部分标签自闭合或省略闭合。
  • 目标网站报错:属性名格式不符合XML规范,HTML对属性的命名和格式要求更宽松,XML解析器无法兼容。

替代工具推荐

  • BeautifulSoup:与lxml配合使用,对不规范HTML的兼容性极强,API更易上手:
    from bs4 import BeautifulSoup
    soup = BeautifulSoup(data, 'lxml')
    
  • PyQuery:语法完全模仿jQuery,适合熟悉前端选择器的开发者,操作DOM更直观。
  • Playwright:如果使用浏览器自动化工具,Playwright自带强大的元素选择器,无需手动解析HTML即可直接定位和操作元素,比Selenium+解析器的组合更高效。

内容的提问来源于stack exchange,提问作者RaymanSix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 00:20:31