BeautifulSoup'没有属性' HTML_ENTITIES

时间:2012-08-08 00:25:41

标签: python beautifulsoup

我最近在Windows机器上将BeautifulSoup从版本3.0升级到版本4.1。

我现在收到一个奇怪的错误:

File "C:\path\to\myscript.py", line 23
0, in soupify
    return BeautifulSoup(html, convertEntities=BeautifulSoup.HTML_ENTITIES)
AttributeError: type object 'BeautifulSoup' has no attribute 'HTML_ENTITIES'

以下是导致异常抛出的代码片段:

def soupify(html):
    return BeautifulSoup(html, convertEntities=BeautifulSoup.HTML_ENTITIES)

BS的文档没有提到构造函数签名从v3到v4的变化。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:5)

  

传入的HTML或XML实体始终转换为   相应的Unicode字符。美丽的汤3有很多   处理实体的重叠方式已被删除。    BeautifulSoup构造函数不再识别smartQuotesTo   或convertEntities参数。(Unicode,Dammit仍有   smart_quotes_to,但它的默认值现在是将智能引号转换为   的Unicode。)

     

如果要将这些Unicode字符转换回HTML实体   输出,而不是将它们变成UTF-8字符,你需要   使用output formatter

来源:http://www.crummy.com/software/BeautifulSoup/bs4/doc/#entities

答案 1 :(得分:0)

Theron的答案可能是最好的,但请确保名称空间不会被摆弄。如果我没记错,HTML_ENTITIESBeautifulStoneSoup命名空间的一部分,而不是BS命名空间。由于您在不参考其来源的模块的情况下调用from BeatifulSoup import *的方式,看起来您已完成BeautifulSoup(html, etc)

请尝试return BeautifulSoup(html, convertEntities=BeautifulStoneSoup.HTML_ENTITIES)并查看是否有效。

答案 2 :(得分:0)

您正在导入BeautifulSoup,错误。坚持做:

from BeautifulSoup import *

只是做:

 import BeautifulSoup