PythonとGemini APIを使いTrafilaturaでWebサイトから本文のみを抽出して質問するプログラムを解説。コピペで即動くサンプルプログラム付き!
「Geminiで最新ニュースとか、好きなブログ記事を読んで分析したい!」って思うこと、あるやろ?
でも、Webサイトって広告とかメニューとか、AIからしたら「余計なノイズ」がめちゃくちゃ多いねん。そのまま渡すと、Geminiも「どこがほんまの話なん?」って困るわけや。
そこで出てくるのが、本文だけをキレイに抜き出してくれる呪文 トラフィラチュラ(trafilatura)。これさえあれば、どんなWebサイトもGeminiが読みやすい形にサクッと整えられるで!
ここでは「Webサイトを読み込んでGeminiに相談する」までの流れを、リファレンス形式でサクッとまとめていくわ。
[Google Colab(Python)でWebサイトを読み込み、Geminiに渡して質問 合計3分]
「スクレイピングってなんか難しそう…」って構えんでも大丈夫。1行の「おまじない」とコピペで動くコードで、Geminiをもっと賢く使いこなせるで!
さあ、一緒にはじめよか!
はじめに
この章は前章の Google Colab で Gemini を呼び出す の続編のため、前章の以下の説明を割愛している。「Google Colab の使用方法」と「APIキーの取得」については、以下のページを参照してほしい。
Google Colab に trafilatura を インストールする
以下のコマンドを、コードセル(またはプロンプト欄:画面下に表示される1行の入力欄)に入力し、左側の ▶(実行ボタン)で実行する。
非エンジニアさんは、おまじないの1行だと思ってくれや。
!pip install -U -q trafilatura→ コードをクリップボードにコピーする
コマンドの解説(エンジニア向け)!pip install-q-UtrafilaturaTrafilatura(トラフィラチュラ)は、ウェブサイトから本文(メインコンテンツ)やメタデータを抽出するために設計されたPythonライブラリ。 Pythonライブラリ、PyPIパッケージ名ともに名称は trafilatura。
trafilatura:Pythonライブラリ および PyPI(Python Package Index)に登録されているパッケージ名Trafilaturaは一般的なスクレイピングツールよりも「記事の本文だけをきれいに抜き出す」ことに特化しており、以下のような特徴がある。
主な機能と特徴
どのような時に使う?
Google Colab(Python)からの Gemini の呼び出しは Google Generative AI SDK を使用する。
以下のコードは、Pythonライブラリの trafilatura でWebサイトを読み込んで本文のみ抽出し、Gemini を呼び出し、抽出した本文と質問に対する回答を生成している。
「→ コードをクリップボードにコピーする」でコピーして、コードセル(画面中央のPythonコードの入力欄)に貼り付けて、api_key="Google AI Studio で取得したAPI キー" に自分のAPIキーを貼り付け、左側の ▶(実行ボタン)で実行すると、1分前後 ▶(実行ボタン)がクルクル回転してプログラムが実行される。
実行が終了すると、画面下に
/usr/local/lib/python3.12/dist-packages/google/colab/...
のような表示が続き、その下に質問に対する Gemini の回答が表示される。
非エンジニアさんは、とにかく以下のコードをコピペして、API キーを変更すれば動くんだと思ってくれや。
# 1. Google Generative AI SDK を Python コードにインポート
try:
import google.generativeai as genai
except ImportError:
!pip install -U -q google-generativeai
import google.generativeai as genai
# 2. trafilatura を Python コードにインポート
try:
import trafilatura
except ImportError:
!pip install -U -q trafilatura
import trafilatura
# 3. genai に Google AI Studio で取得したAPI キーを設定
genai.configure(api_key="Google AI Studio で取得したAPI キー")
# 4. Geminiのモデルを指定し、インスタンスを生成
model = genai.GenerativeModel('gemini-2.5-flash')
# 5. URLを指定して本文だけを抽出
downloaded = trafilatura.fetch_url('https://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%A3%E3%82%A2%E3%83%BB%E3%82%A2%E3%82%BA%E3%83%8A%E3%83%96%E3%83%AB')
tratext = trafilatura.extract(downloaded)
# 6.「シャアを救う方法はあった?」+ 改行コード + 改行コード + trafilaturaで抽出したURLの文章を prompt 変数に代入
prompt = "シャアを救う方法はあった?\n\n" + tratext
# 7. generate_contentメソッドを実行し、戻り値を出力
response = model.generate_content(prompt)
print(response.text)
→ コードをクリップボードにコピーする
api_key="Google AI Studio で取得したAPI キー"は、自分のAPIキーに書き直す
戻り値(GenerateContentResponse)の構造
![]() | 10日で使えるPHP | 未経験のサルでも分かるPHPの学習サイト 文系未経験、サルでも10日でPHPを使えるように内容を構成した独学向け学習サイト。不要な基礎はバッサリ切り捨て必要な基礎を十分に深堀した・・・ 続きを見る |