我想用 p
标签包装很多div-Elements/块的内容:
<div class='value'>
some content
</div>
应该变成:
<div class='value'>
<p>
some content
</p>
</div>
我的想法是通过用find_all
过滤字符串,然后用新标签包装来获取内容(使用BS4(。不知道,它是否有效。我无法从具有特定属性/值的标签中过滤内容。
我可以使用正则态度而不是BS4。但是我想在BS4中进行所有转换(在此旁边还有更多转换(。
相信与否,您可以使用 wrap
。: - (
因为您可能或不想包装内部div
元素,所以我决定稍微更改您的HTML代码,以便我可以给您代码,以显示如何更改内部div
而不更改"外部"的代码它。我敢肯定,您将看到如何更改所有div
s。
这是如何。
>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup(open('pjoern.htm').read(), 'lxml')
>>> inner_div = soup.findAll('div')[1]
>>> inner_div
<div>
some content
</div>
>>> inner_div.contents[0].wrap(soup.new_tag('p'))
<p>
some content
</p>
>>> print(soup.prettify())
<html>
<body>
<div class="value">
<div>
<p>
some content
</p>
</div>
</div>
</body>
</html>