Python(requests)でWikipedia検索を
以上のサンプル コードのURLをちょこっと変えたり,後で処理しやすいように少しばかり整形しただけです.
import requests,pprint
def wiki_search(query):
wiki = "https://ja.wikipedia.org/w/api.php"
params = {
"action": "opensearch",
"namespace": "0",
"search": query,
"limit": "5",
"format": "json",
"profile": "strict"
}
res = requests.get(url=wiki,params=params).json()
if len(res[1]) > 0:
data = []
for no in range(len(res[1])):
data.append({"word":res[1][no],"abstract":res[2][no],"url":res[3][no]})
pprint.pprint(data, indent=4)
return data
else:
print("not found")
return []
wiki_search(input('search word:'))
"profile"を"strict"とすると検索ワードと完全一致したものがタイトル文に含まれているページのみを抽出するようになります. 例えば,
search word:んんん not found
search word:ヤバい [ { 'abstract': '', 'url': 'https://ja.wikipedia.org/wiki/%E3%83%A4%E3%83%90%E3%81%84', 'word': 'ヤバい'}, { 'abstract': '', 'url': 'https://ja.wikipedia.org/wiki/%E3%83%A4%E3%83%90%E3%81%84%E6%A4%9C%E4%BA%8B_%E7%9F%A2%E5%A0%B4%E5%81%A5%E3%80%9C%E3%83%A4%E3%83%90%E3%82%B1%E3%83%B3%E3%81%AE%E6%9A%B4%E8%B5%B0%E6%8D%9C%E6%9F%BB%E3%80%9C', 'word': 'ヤバい検事 矢場健〜ヤバケンの暴走捜査〜'}, { 'abstract': '', 'url': 'https://ja.wikipedia.org/wiki/%E3%83%A4%E3%83%90%E3%81%84T%E3%82%B7%E3%83%A3%E3%83%84%E5%B1%8B%E3%81%95%E3%82%93', 'word': 'ヤバいTシャツ屋さん'}]
という感じです.