私はbeautifulsoupを使って次のようにしたいと思います。
次のようなhtmlファイルがあります。美しいスープで隣のタグを囲む方法
<img src="00001.jp">
<figcaption>caption string1</figcaption>
<img src="00002.jp">
<img src="00003.jp">
<figcaption>caption string3</figcaption>
このhtmlを次のように変換します。
<figure>
<img src="00001.jp">
<figcaption>caption string1</figcaption>
</figure>
<figure>
<img src="00002.jp">
</figure>
<figure>
<img src="00003.jp">
<figcaption>caption string3</figcaption>
</figure>
imgタグの次にfigcaptionタグがある場合は、Figureタグで囲んでください。 それが違う場合、imgタグだけをfigureタグで囲みたいと思います。
imgタグのみを図形タグで囲み、次のコードで囲むことは可能です。
from bs4 import BeautifulSoup
html = "<img src="00001.jp">
<figcaption>caption string1</figcaption>
<img src="00002.jp">
<img src="00003.jp">
<figcaption>caption string3</figcaption>"
content = BeautifulSoup(html)
for img_tag in content.find_all('img'):
img_tag.wrap(content.new_tag('figure'))
ただし、次のタグがfigcaptionタグであることを検出する方法はわかりません。
また、imgタグとfigcaptionをfigureタグで囲むかどうかはわかりません。
@COLDSPEEDのおかげでそれはとてもよく働きました!! :) – xKxAxKx
うれしい私は助けることができます:) –