我正在尝试的代码是:
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标签的字符串,我需要清理它,如果有不同的方法,请建议它。
答案 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>