ChatGPTに、htmlファイルから指定タグ内のテキストだけを抽出するPythonコードを書いてもらった

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ファイルをリストで渡したり、 特別な除外ケースにも対応できるように正規表現ブロックを追加したりすれば、 より実用的なスクリプトになりますね。