• home
  • about
  • 全ての投稿
  • ソフトウェア・ハードウェアの設定のまとめ
  • 分析関連のまとめ
  • ヘルスケア関連のまとめ
  • 生涯学習関連のまとめ

青空文庫

date: 2024-09-04 excerpt: 青空文庫について

tag: 青空文庫


青空文庫について

小説本文の取得と整形

import requests
from bs4 import BeautifulSoup

# 取得するURL
url = "https://www.aozora.gr.jp/cards/000081/files/456_15050.html"
# ページの内容を取得
response = requests.get(url)
response.encoding = response.apparent_encoding

# BeautifulSoupでHTMLをパース
soup = BeautifulSoup(response.text, "html.parser")

# ルビを無視してテキストを取得する関数
def extract_text_without_ruby(element):
    text = ""
    for content in element.contents:
        if content.name == "ruby":
            # <ruby>タグをスキップして、<rb>タグの内容のみを取得
            rb = content.find("rb").get_text()
            text += rb
        elif content.name is None:
            text += content
    return text

# テキスト部分を取得
main_text = soup.find_all("div", class_="main_text")

# テキストを抽出して結合
text = "\n".join([extract_text_without_ruby(div) for div in main_text])
print(text[:200])
"""
「ではみなさんは、そういうふうに川だと云われたり、乳の流れたあとだと云われたりしていたこのぼんやりと白いものがほんとうは何かご承知ですか。」先生は、黒板に吊した大きな黒い星座の図の、上から下へ白くけぶった銀河帯のようなところを指しながら、みんなに問をかけました。
 カムパネルラが手をあげました。それから四五人手をあげました。ジョバンニも手をあげようとして、急いでそのままやめました。たしか
"""

Webページ情報のルビの削除

  • Google Chromeで開発者モードのconsoleにアクセスする
  • allow pastingを入力してEnter
  • document.querySelectorAll('rt').forEach(element => element.remove()); を入力してEnter


青空文庫 Share Tweet