【发布时间】:2014-09-23 05:37:00
【问题描述】:
作为标题,我尝试使用read_html,但出现以下错误:
In [17]:temp = pd.read_html('C:/age0.html',flavor='lxml')
File "<string>", line unknown
XMLSyntaxError: htmlParseStartTag: misplaced <html> tag, line 65, column 6
我做错了什么?
更新01
HTML 在顶部包含一些 javascript,然后是一个 html 表格。我使用 R 通过 XML 包解析 html 来处理它,给我一个数据框。我想用 python 来做,在给 pandas 之前,我应该用 beautifulsoup 之类的东西吗?
【问题讨论】:
-
那么age0.html的内容是什么?
-
pandas.pydata.org/pandas-docs/dev/generated/…: "flavor : str or None, container of strings 要使用的解析引擎。'bs4' 和 'html5lib' 是同义词,它们都是为了向后兼容而存在的。默认值 None 尝试使用 lxml 进行解析,如果失败,则使用 bs4 + html5lib。”我的猜测是 html 格式不正确并且解析失败。尝试不同的解析器?风味='bs4'
-
只是另一个。如果从珍贵的笔记中不清楚。 read_html 方法可以使用 beautifull soup 作为解析器,请查看上面链接中的 pandas 文档。语法错误听起来好像 HTML 格式不正确,使用不同的 aprser 可能更宽容。
-
为此使用
lxml(实际上是任何格式错误的HTML)都是一个坏主意。您应该pip install beautifulsoup4和pip install html5lib并在没有任何flavor参数的情况下调用read_html。这些会慢得多,但我会在任何一天慢慢地纠正而不是快速和不正确。老实说,我们应该从一开始就扔掉lxml,但现在有点太晚了。 -
您收到此错误是因为我强制
lxml严格要求。在过去,lxml已经丢弃了某些格式错误的 HTML 的数据,恕我直言,这并不酷。其他库 OTOH 不这样做,因此不会删除数据。