【Python】PythonのWikipedia APIを使ってみよう!前編
[:contents]
はじめに
こんにちは、絶賛模索中のサンナボコナです。今回はPythonの中でWikipediaのデータを扱うことができるライブラリを紹介したいと思います。これがなかなか面白い。
ダウンロード方法
このブログはProgate修了直後の方を対象にしているので、ここも省略しません!
Pythonにはもともとたくさんのライブラリが内蔵されています。ランダムな処理を扱うrandom、日時を扱うdatetimeなど…。そして、それ以外にもダウンロードすることによって様々なライブラリを追加することができます。有名なのはNumPy、Pandasあたりですかね。今回紹介するWikipedia APIもその一つです。
では、実際にダウンロードしてみましょう。
簡単ですね!他のPythonのライブラリをダウンロードするときも同じようにできます。
もしこのあたりでうまくいかなかった場合は、今後書こうと思っている「pipの使い方」の記事を参考にしてください!私が書くまではGoogle先生に聞いてみましょう!
早速試してみよう
とりあえずコマンドラインで使ってみましょう!
まずは先ほどと同じくWindows + Rにcmdと入力し、コマンドラインを起動します。そのまま「python」と入力しましょう。
ここから実際にWikipedia APIを使っていきます。最初にwikipediaライブラリをインポートし、言語を日本語に設定します。
>>> import wikipedia
>>> wikipedia.set_lang("ja")
次に、単語でWikipediaを検索してみましょう。今回は「Python」を入れてみます。
>>> wikipedia.search("Python")
['Python', 'Pip', 'IDLE (Python)', 'CLPython', 'Python Package Index', 'Stackless Python', 'Pythonソフトウェア財団', 'Eric Python IDE', 'Mod python', 'PySide']
リストの形で返ってきました。検索の結果の関連するものを上から10個をリストに格納しているようですね。
しかしこれでは物足りません。ページの中身が見えなければ!
>>> wikipedia.search("Python").content
これを実行するとページの情報全部が表示されます。ちょっと情報量が多すぎる…。
あとでここから最低限だけ抽出してみることにして、いったんページの中身も見ることができると知っておきましょう!
最後にページのURLを取得してみましょう。
>>> wikipedia.page("Python").url
'https://ja.wikipedia.org/wiki/Python'
これを利用すれば、プログラムから一発でリンクへ飛ぶことができますね!一応リンクから飛べるかどうか確認しましょうか。
https://ja.wikipedia.org/wiki/Python
うん、いい感じです。
Wikipedia検索プログラムを書いてみる
さてさて、これを利用して単語を入力したときに「入力された単語の概要」と「Wikipediaの記事へのリンク」を表示できるようにしてみましょうか。
PythonのWikipediaAPIを使って遊ぶ - Qiita
このページを参考にしつつ、ちょっとアレンジしてみました。今度は長くなるので、コマンドラインではなくテキストエディタに入力して保存し、プログラムとして実行しましょう。
import wikipedia
def wikipediaSearch(search_text):
response_string = ""
wikipedia.set_lang("ja")
search_response = wikipedia.search(search_text)
if not search_response:
response_string = "その単語は登録されていません。"
return response_string
try:
wiki_page = wikipedia.page(search_response[0])
except Exception as e:
response_string = "エラーが発生しました。\n{}\n{}".format(e.message, str(e))
return response_string
wiki_content = wiki_page.content
response_string += wiki_content[0:wiki_content.find("。")] + "。\n"
response_string += "リンクはこちら:" + wiki_page.url
return response_string
if __name__ == "__main__":
while True:
user_input = input("検索したい単語を入力してください。:")
if not user_input:
break
print(wikipediaSearch(user_input))
このプログラムを起動すると、入力した単語の概要とWikipediaへのリンクを返してくれます。該当するページがなかった場合も教えてくれますよ。
コマンドラインからPythonファイルを実行する手順も紹介します。たとえば上記のファイルを「wikipedia_search.py」という名前で「デスクトップ」に保存している場合。
cd desktop
python wikipedia_search.py
起動できました!では、実際に検索してみましょう。「Python」と入力すると…?
python wikipedia_search.py
検索したい単語を入力してください。:Python
Python(パイソン)は、汎用のプログラミング言語である。
リンクはこちら:https://ja.wikipedia.org/wiki/Python
検索したい単語を入力してください。:
ばっちりです!ちなみに、このあとも続けて入力することができます。
コードの詳しい解説はまた次回に。
参考サイト
公式サイト。詳しい使い方はこちらに(英語ですが)。
私がこのライブラリを知ったきっかけの記事。