1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【私用】wikipedia-apiを使った日本語 wikipedia のスクレイピング

1
Posted at

概要

Wikipediaの情報をまとめる時のスクレイピングについてです。BeautifulSoupを使って地道に取得するのも1つの方法ですが、簡単に取得できるライブラリーがいくつかあるようです。今回は、wikipedia-apiを使ってみました。

インストール

Pythonのライブラリーwikipedia-apiをインストールします。

pip install wikipedia-api

公式のドキュメント

使い方

https://ja.wikipedia.org/wiki/ChatGPT 」の本文情報を取得する例で試してみました。基本的に3ステップ(3行)となります。

基本形
import wikipediaapi

# (1) 
wiki = wikipediaapi.Wikipedia(
    language="ja",
    user_agent="MyProject/1.0 (sample@sample.com)")

# (2)
page = wiki.page("ChatGPT")

# (3)
print(page.title)    # タイトル表示
print("本文:")
print(page.text)     # 本文表示

# 【出力結果】
# ChatGPT
# 本文:
# ChatGPT(チャットジーピーティー)は、OpenAIが2022年11月に公開したGPT系列の大規模言語モデルを用いる対# 話型生成AIサービスである。
# 
# 概要
# ChatGPTの公開当初は大規模言語モデルとしてGPT-3.5が一般公開されていた。〜〜続く〜〜

説明メモ

  • (1) Wikipediaにアクセスする準備
    • language="ja"で言語指定
    • user_agent: WikipediaのAPI利用には誰がアクセスしているかの情報の明示がマナーのようです。「アプリ名/バージョン (連絡先メールアドレス)」の形式がドキュメントでの推奨でした。
  • (2) ページの指定
    • 取得したい記事のタイトルを指定します。タイトル部分を分けて記述したほうが良いかと思いますが:sweat:
  • (3) データの取得と表示
    • 今回は取得したいページの存在がわかっているので、「取得できたら〜」みたいな分岐はありません
    • page.title: タイトル
    • page.text: 本文(タグ、リンクなどの不要物もありません)

取得したいページの存在の確認も exists()で簡単にできるようです。

ページの存在確認
import wikipediaapi

# (1) 
wiki = wikipediaapi.Wikipedia(
    language="ja",
    user_agent="MyProject/1.0 (sample@sample.com)"
)

# (2)
search_term = "ChatGPT"
page = wiki.page(search_term)

# (3)
if page.exists():
    print(page.title)    # タイトル表示
    print("本文:")
    print(page.text)     # 本文表示
else:
    print(f"{search_term}」ないぞ〜")

説明メモ

  • (3) exists()でページの存在判定ができるようです。

search_term = "ChatGTP"として、elseが実行されるか!と試したのですが、

https://ja.wikipedia.org/wiki/ChatGTP
もしかして
ChatGPT
ではありませんか?

が存在するようですorz

開発者のリポジトリ

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?