青空文庫について
小説本文の取得と整形
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])
"""
「ではみなさんは、そういうふうに川だと云われたり、乳の流れたあとだと云われたりしていたこのぼんやりと白いものがほんとうは何かご承知ですか。」先生は、黒板に吊した大きな黒い星座の図の、上から下へ白くけぶった銀河帯のようなところを指しながら、みんなに問をかけました。
カムパネルラが手をあげました。それから四五人手をあげました。ジョバンニも手をあげようとして、急いでそのままやめました。たしか
"""