#はじめに
wikipediaのデータはローカルに大量にあるのでいらなかったのですが、少しだけデータが欲しいというときにwikipediaのAPIに出会ったのでその時の記録です。
#環境
動作可能OS(windowsでもmacでも動きます)
┗mac OS Catalina 10.15.7
┗Widows 10
Python 3.8.3
#インストール
これだけです。
pip install wikipedia
#wikipediaの要約部分を収集
検索ワードを入力するとその単語に関係する記事を勝手に検索してくれます。
python3 wikipedia_data.py 検索ワード
で実行できます。
実行結果、すなわちwikipdiaの記事データはwikipedia.txtに保存されます。
検索ワードに問題があるときは、
wikipedia.exceptions.DisambiguationError: "検索ワード" may refer to:
という文の後に、候補を提示してくれるので、そのワードで再検索するとうまくいきます。
稀に長文のエラーは出ることがありますが、APIの性質上、おそらく何らかの影響で通信にエラーが出てると思います。
なので、上記のエラー以外が出てても無視して、もう一度実行すれば成功すると思います。
import sys
import wikipedia
# 言語を日本語に設定
wikipedia.set_lang("jp")
# テキストファイルを開く
f = open('wikipedia.txt', 'a')
args = sys.argv
word = args[1]
# 検索ワードを用いて検索
words = wikipedia.search(word)
if not words:
print("一致なし")
else:
#検索ワードがヒットすれば要約を取得
line = str(wikipedia.summary(words[0]))
f.write(word)
f.write(line.rstrip())
print("success!")
f.write("\n" + "EOS" + "\n")
f.close()
#wikipediaAPIの使用方法
英語の公式チュートリアル↓
https://wikipedia.readthedocs.io/en/latest/code.html
だけでは味気ないので、使いそうなものを簡単に抜粋して要約してみました。
(これだけわかれば十分だと思いますが、かなり端折った部分が多いので、使いこなしたいなら自分でチュートリアルを見てください)
メソッド | 概要 |
wikipedia.search("検索ワード", results=10) | 検索ワードに対する最大10までの検索結果をリストで返します |
wikipedia.summary("検索ワード", sentences=0) | 検索ワードに対する記事の要約文を取得します |
wikipedia.page("検索ワード") | 検索ワードに対する記事全体をオブジェクトとして取得します 生成したオブジェクトに.contentをつけると記事全体をテキストデータとして取得できます |