ProgateのあとのPython

Pythonを勉強してるんだけど、Progateが終わったらいったい何をすればいいんだろう?そんな皆さん(私を含む)のために、Progateでの勉強に毛が生えた程度しか知らない京大生が、模索しながらPythonを勉強する記録を残していきます!順番や効率などめちゃくちゃですが、ProgateでPythonの基礎を習得して何をすべきかわからなくなった方にとって、少しでも参考になればと思います。

【Python】PythonのWikipedia APIを使ってみよう!前編

 [:contents]

 

はじめに

 こんにちは、絶賛模索中のサンナボコナです。今回はPythonの中でWikipediaのデータを扱うことができるライブラリを紹介したいと思います。これがなかなか面白い。

 

ダウンロード方法

  このブログはProgate修了直後の方を対象にしているので、ここも省略しません!

 Pythonにはもともとたくさんのライブラリが内蔵されています。ランダムな処理を扱うrandom、日時を扱うdatetimeなど…。そして、それ以外にもダウンロードすることによって様々なライブラリを追加することができます。有名なのはNumPy、Pandasあたりですかね。今回紹介するWikipedia APIもその一つです。

 

 

 では、実際にダウンロードしてみましょう。

  1. コマンドプロンプトを起動する。(Windows + Rで出た画面にcmdと入れEnter)
  2. 以下のコマンドを実行する。
    pip install wikipedia
  3. 終わり。

簡単ですね!他の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
検索したい単語を入力してください。:

ばっちりです!ちなみに、このあとも続けて入力することができます。

コードの詳しい解説はまた次回に。

 

参考サイト

公式サイト。詳しい使い方はこちらに(英語ですが)。

pypi.org

私がこのライブラリを知ったきっかけの記事。

qiita.com