【发布时间】:2015-02-21 14:49:21
【问题描述】:
但是我在这里找到了很多答案,不幸的是,它们对我不起作用。
我有 Ubuntu x64,python 3.4.2。
我正在解析一个带有 html 实体的网页,例如   等:
import xml.etree.ElementTree as ET
page = 'some string I get from requests.get'
parser = ET.XMLParser()
parser.parser.UseForeignDTD(True)
tree = ET.fromstring(page, parser=parser)
很多答案都包含此代码,以防止出现unknown entity &nbps; 之类的错误。当我编译这段代码时,它会抛出一个错误:
AttributeError: 'xml.etree.ElementTree.XMLParser' object has no attribute 'parser'
或
AttributeError: 'xml.etree.ElementTree.XMLParser' object has no attribute '_parser'
(取决于我在上面代码的第 4 行中编写的 parser 对象的哪个成员)。神奇的是,当我尝试从PyCharm IDE 访问此代码时,它显示该成员存在并在类构造函数中成功创建:
# underscored names are provided for compatibility only
self.parser = self._parser = parser
self.target = self._target = target
我的问题是:
- 为什么这不起作用?
- 是否可以不手动添加每个实体以防止解析错误?
【问题讨论】: