我希望能够根据 div 的 id 对其进行包装。例如,给出以下 HTML:
<body>
<div id="info">
<div id="a1">
</div>
<div id="a2">
<div id="description">
</div>
<div id="links">
<a href="http://example.com">link</a>
</div>
</div>
</div>
</body>
我想编写一个带有文档、id 和选择器的 Python 函数。并将给定 document
中的给定 id
包装在带有类或 id selector
的 div
中。例如,假设上面的 HTML 位于变量 doc
wrap(doc,'#a2','#wrapped')
将返回以下 HTML:
<body>
<div id="info">
<div id="a1">
</div>
<div id="wrapped">
<div id="a2">
<div id="description">
</div>
<div id="links">
<a href="http://example.com">link</a>
</div>
</div>
</div>
</div>
</body>
我查看了一些 XML 解析器和 Python HTMLParser,但我没有找到任何东西可以让我不仅能够获取特定标签内的所有内容,而且还能够附加字符串并轻松编辑文档。如果不存在,什么是一个好的方法?
最佳答案
from BeautifulSoup import BeautifulSoup
#div1 is to be wrapped with div2
def wrap(doc,div1_id,div2_id)
pool = BeautifulSoup(doc)
for div in pool.findAll('div', attrs={'id':div1_id}):
div.replaceWith('<div id='+div2_id+'>' + div.prettify() + '</div>' )
return pool.prettify()
wrap(doc,'a2','wrapped')
关于python - 用 python 函数包装 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17564459/