beautifulsoup(python)中的renderContents

时间:2011-06-14 20:15:39

标签: python html beautifulsoup

我正在尝试的代码是:

h = str(heading)
# '<h1>Heading</h1>'
heading.renderContents()

我收到此错误:

Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
print h.renderContents()
AttributeError: 'str' object has no attribute 'renderContents'

有什么想法吗?

我有一个带有html标签的字符串,我需要清理它,如果有不同的方法,请建议它。

1 个答案:

答案 0 :(得分:1)

您的错误消息和代码示例不对齐。你说你在打电话:

heading.renderContents()

但是您的错误消息显示您正在呼叫:

print h.renderContents()

这表明您的代码中可能存在错误,尝试在未定义该方法的字符串对象上调用renderContents()

在任何情况下,如果你检查了什么类型的对象heading以确保它确实是一个BeautifulSoup实例,它会有所帮助。这适用于BeautifulSoup 3.2.0:

from BeautifulSoup import BeautifulSoup
heading = BeautifulSoup('<h1>heading</h1>')
repr(heading)
# '<h1>heading</h1>'
print heading.renderContents()
# <h1>heading</h1>
print str(heading)
# '<h1>heading</h1>'
h = str(heading)
print h
# <h1>heading</h1>