サンプル:https://www.aozora.gr.jp/cards/000329/files/18376_12100.html
質問
div main_textタグの中のコンテンツを<rb>などのタグ込みで取得したいと考えております
contentsメソッドでタグごと取得するところまではできたのですが、
リスト形式になっており、また不要な文字が混入しています。
for文でリストから取り出し、消そうとしたのですが、
タグは文字列で結合することができないみたいです。
理想の結果になるように出力したいのですが、
どうすればよいか教えていただけると助かります
※理想の出力結果は下に記載しております。
実現したいこと
- 理想の出力結果になるような形で出力する。
- ルビのタグ付きで取得する
- '\r\n\u3000等、不要な改行コードなどを消す
- txtファイルで出力する
試したこと
import requests from bs4 import BeautifulSoup import pandas as pd def get(url): //対象のページアクセスする url = url html_text = requests.get(url) soup = BeautifulSoup(html_text.content, 'html.parser') //タイトルと著者名を取得する title = soup.find('h1') author = soup.find('h2') //不要なタグを削除する soup.find('div',class_='jisage_5').decompose() //必要な情報を、タグごと取得 contents = soup.find('div', class_='main_text').contents return contents if __name__ == '__main__': str = get('https://www.aozora.gr.jp/cards/000329/files/18376_12100.html') print(str)
print(content)の結果
1[<br/>, '\n', '\n', <br/>, '\r\n\u3000むかし、むかし、あるところに、おじいさんとおばあさんがありました。まいにち、おじいさんは山へしば', <ruby><rb>刈</rb><rp>(</rp><rt>か</rt><rp>)</rp></ruby>, 'りに、おばあさんは川へ', <ruby><rb>洗濯</rb><rp>(</rp><rt>せんたく</rt><rp>)</rp></ruby>, 'に行きました。', <br/>, '\r\n\u3000ある日、おばあさんが、川のそばで、せっせと', <ruby><rb>洗濯</rb><rp>(</rp><rt>せんたく</rt><rp>)</rp></ruby>, 'をしていますと、', <ruby><rb>川上</rb><rp>(</rp><rt>かわかみ</rt><rp>)</rp></ruby>, 'から、大きな', <ruby><rb>桃</rb><rp>(</rp><rt>もも</rt><rp>)</rp></ruby>, 'が一つ、', <br/>, '\n', <div class="jisage_4" style="margin-left: 4em"> 2「ドンブラコッコ、スッコッコ。<br/> 3ドンブラコッコ、スッコッコ。」<br/>
_理想の出力結果
1桃太郎 2楠山正雄 3 4むかし、むかし、あるところに、おじいさんとおばあさんがありました。まいにち、おじいさんは山へしば', <ruby><rb>刈</rb><rp>(</rp><rt>か</rt><rp>)</rp></ruby>, 'りに、おばあさんは川へ', <ruby><rb>洗濯</rb><rp>(</rp><rt>せんたく</rt><rp>)</rp></ruby>, 'に行きました。', <br/>, 3000ある日、おばあさんが、川のそばで、せっせと', <ruby><rb>洗濯</rb><rp>(</rp><rt>せんたく</rt><rp>)</rp></ruby>, 'をしていますと、', <ruby><rb>川上</rb><rp>(</rp><rt>かわかみ</rt><rp>)</rp></ruby>, 'から、大きな', <ruby><rb>桃</rb><rp>(</rp><rt>もも</rt><rp>)</rp></ruby>, 'が一つ、', <br/>, ' 5「ドンブラコッコ、スッコッコ。<br/> 6ドンブラコッコ、スッコッコ。」<br/>

回答1件
あなたの回答
tips
プレビュー