擅长:python、mysql、java
<p>是的,如果你有非ASCII名称的元素(<code><café></code>),它会窒息。对于XML来说,这甚至不是“坏标记”。。。在</p>
<p>BeautifulGroup正在使用的<code>sgmllib</code>中存在一个缺陷:它试图查找与标记同名的自定义方法,但在Python2中,方法名是字节字符串,因此即使是在中查找不存在非ASCII字符的方法,也会失败。在</p>
<p>您可以通过将第259行和第371行从<code>except AttributeError:</code>更改为<code>except AttributeError, UnicodeError:</code>来修复sgmllib,但这并不是一个好的修复。重写方法的其余部分也很重要。在</p>
<p>你想分析什么?beauthoulstonesoup的有用性总是有问题的,实际上XML没有HTML那样丰富的可怕的解析器,所以一般来说,损坏的XML不是XML。因此,您通常应该使用普通的旧XML解析器(例如使用标准DOM或etree)。对于解析一般的HTML,<code>html5lib</code>是目前您更好的选择。在</p>