2017-06-23 17 views
0

私はredditのコメント用にHTMLの書式を設定するプログラムに取り組んでいます。だから私は持っている場合、たとえば:BeautifulSoup4でネストされたタグのテキストを置き換えるにはどうすればよいですか?

<i> This is Italics <b> but this is bold and italics</b> and back to italics <i> 

を私はそれが生み出す

*This is Italics* ***but this is bold and italics*** *and back to italics* 

としてそれをフォーマットしたいと思います: これは斜体であるが、これは大胆で、斜体に戻る

タグとレプリカのすべてのタグを見つけるのに問題があります書式を乱すことなく、アスタリスクの適切な量をそれらに送ってください。私はいくつかのことを試してみたが、最近のは次のとおりです。

italics = soup.find_all('i') 
for i in range(len(italics)): 
    bold = italics[i].find_all('b') 
    for j in bold: 
     bold[i].replace_with('***' + bold[i].text + '***') 

しかし、ネストされたタグを編集しようとしたとき、私はエラーを取得し、私は内側***だけのもので、すべての大胆なタグを編集する必要はありませんイタリック体なので書式はそのまま残り、残りの部分は**に変更できます。

答えて

0

おそらく、このような何かが分かりやすいでしょう。

italics = soup.find_all('i') 
for i in italics: 
    print(i.b) 
    if i.b: 
     i.b.replace_with('***' +i.b.text +'***') 

print(soup) 

、全体のコード、愚かなそれは

italics = soup.find_all('i') 
for i in italics: 
    print(i.b) 
    if i.b: 
     i.b.replace_with('* ***'+ i.b.text +'*** *') 
    i.replace_with('*'+i.text+ '*') 

print(soup) 
の作品
関連する問題