如何在BeautifulSoup中将所有img标签用另一个标签包围。这个:
<p>
text
<img src="img1.jpg" />
..text..
<img src="img2.jpg" />
..text..
<img src="img3.jpg" />
</p>
应该变成这样:
<p>
text
<figure><img src="img1.jpg" /></figure>
..text..
<figure><img src="img2.jpg" /></figure>
..text..
<figure><img src="img3.jpg" /></figure>
</p>
有什么建议吗?
答案 0 :(得分:1)
在BeautifulSoup上使用wrap()
功能:
data = '''<p>
text
<img src="img1.jpg" />
..text..
<img src="img2.jpg" />
..text..
<img src="img3.jpg" />
</p>'''
from bs4 import BeautifulSoup
soup = BeautifulSoup(data, 'lxml')
for img in soup.select('img'):
img.wrap(soup.new_tag('figure'))
print(soup.p.prettify())
打印:
<p>
text
<figure>
<img src="img1.jpg"/>
</figure>
..text..
<figure>
<img src="img2.jpg"/>
</figure>
..text..
<figure>
<img src="img3.jpg"/>
</figure>
</p>