ChatGPTに、htmlファイルから指定タグ内のテキストだけを抽出するPythonコードを書いてもらいました。自然言語処理やスクレイピングでよくある前処理の一つですね。
今回は青空文庫でダウンロードしてきたhtmlファイルから本文だけを取得したい場合です。
指示文(プロンプト):
htmlファィルから <div class="main_text"> タグ内のテキストだけを抽出するPythonプログラムを書いてください。
回答:
Pythonの場合、HTMLファイルから特定のタグ内のテキストを抽出するには、Beautiful Soupというライブラリを使用することが一般的です。以下は、Beautiful Soupを使ったHTMLファイルから
タグ内のテキストを抽出するサンプルコードです。
from bs4 import BeautifulSoup
# HTMLファイルを読み込み
with open("sample.html", "r", encoding="utf-8") as f:
html = f.read()
# BeautifulSoupオブジェクトを作成
soup = BeautifulSoup(html, "html.parser")
#
タグを検索し、その中のテキストを抽出 div_main_text = soup.find("div", class_="main_text") if div_main_text: text = div_main_text.get_text(strip=True) print("抽出されたテキスト:", text) else: print("対象のタグが見つかりませんでした")
結果:
以下のように成功しました。ただ、htmlファイルがShift-JISだったので、コードもそれに合わせて書き換えてます。また、「print("抽出されたテキスト:")」も不要なので消してます。
あとは実際に処理対象となるhtmlファイルをリストで渡したり、 特別な除外ケースにも対応できるように正規表現ブロックを追加したりすれば、 より実用的なスクリプトになりますね。