前提・実現したいこと
Pythonで、XHTMLのタグを除去しようとしています。
このとき、ルビ<rt>だけは、青空文庫形式の記号<>(全角の不等号)に置換したいのですが、上手く行きません。
<rt>るびほんぶん</rt>
というのがあれば、るびほんぶんという部分を<るびほんぶん>と置換し、最後にまとめて出力しようとしています。
発生している問題・エラーメッセージ
ルビが<ルビ>に置換されないまま出力される
該当のソースコード
Python 3.7
from lxml import etree from lxml import html from bs4 import BeautifulSoup f=open('story-0004.xhtml','rb') s=BeautifulSoup(f.read(),"lxml") i=0 for tag in s.find_all(): if tag.find_all('rt'): try: x='<' + tag.string + '>' a=tag.text.replace(tag.string,x) s.tag.text=x #この行が反映されない。 except: pass print(s.text) #tagが置換されずに出力される
試したこと
s.tag.textが多分、元のBeautifulsoupオブジェクトsそのものではなく、
forループの中だけで一時的に生成されるオブジェクトか何かなのではないかと思うのですが、
元のオブジェクトをどうやって呼び出すのかが分かりません。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/17 08:52
2020/03/18 00:31
2020/03/18 09:12