Wikipediaで検索する

今日は、Wikipediaで検索するプログラムを作ってみました。

Wikipediaでは、JSON形式で応答するAPIが公開されていることを知りました。

参考文献:https://ja.wikipedia.org/w/api.php

そこで、以下のようなプログラムで検索してみました。

#!/usr/bin/env python3
# coding: utf-8
# Example 08 IoT連携の基本 HTTP GET Wikipedia情報の取得

# 参考文献:https://ja.wikipedia.org/w/api.php

from sys import argv
import urllib.request
import urllib.parse
import json

keyword = 'ウィキペディア'

print('Usage:', argv[0], '検索キーワード') 

if len(argv) >= 2:
    keyword = argv[1]

url_s = 'http://ja.wikipedia.org/w/api.php?'
url_s += 'format=json' + '&'
url_s += 'action=query' + '&'
url_s += 'prop=extracts' + '&'
url_s += 'exintro' + '&'
url_s += 'explaintext' + '&'
url_s += 'titles='
url_s += urllib.parse.quote(keyword)
print(url_s)

try:
    res = urllib.request.urlopen(url_s)
    res_s = res.read().decode()
    res.close()
    res_dict = json.loads(res_s)
except Exception as e:
    print(e)
    exit()

# pages_dict = res_dict['query']['pages']
query_dict = res_dict.get('query')
pages_dict = query_dict.get('pages')
for pageid in pages_dict:
    # extract = pages_dict[pageid]['extract']
    pageid_dict = pages_dict.get(pageid)
    extract = pageid_dict.get('extract')
    if extract == None or extract == '':
        print('見つかりませんでした。',pageid)
    else:
        print(extract.split('\n')[0])

https://github.com/bokunimowakaru/iot/blob/master/learning/example08_htget_wiki.py

以下は、実行結果です。

pi@metal:~/iot/learning $ ./example08_htget_wiki.py 百科事典
Usage: ./example08_htget_wiki.py 検索キーワード
http://ja.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro&explaintext&titles=%E7%99%BE%E7%A7%91%E4%BA%8B%E5%85%B8
百科事典(ひゃっかじてん、拉: encyclopaedia)とは、あらゆる科目にわたる知識を集め、これを部門別やアルフ ァベット順・五十音順などに配列し、解説を記した書物のこと。「百科」と略記されることもある。
pi@metal:~/iot/learning $

応用として、音声認識で入力した内容をWikipediaで検索し、その結果を音声合成で再生するといった使い方が考えられます。

by ボクにもわかるRaspberry Pi
https://bokunimo.net/raspi/

Yahoo! ジオシティーズの思い出

写真は、Yahoo!ジオシティーズで公開していたウェブサイト「ボクにもわかる地上デジタル」を、 Mac版のインターネット・エクスプローラで表示したときの様子です。Safariが開発される前のMac用の標準ブラウザは、Microsoft IEだったのです(ほんの一時期です)。

今日は、Yahoo!ジオシティーズの思い出+ちょっと自慢をしてみたいと思います。

2003年に地上デジタル放送の試験放送を受信する方法について解説したウェブサイト「ボクにもわかる地上デジタル」を公開しました。当時、放送電波の出力が弱かった上に、地上デジタル放送に対応したアンテナ部品が少なかったこともあり、地上デジタル放送を受信するためのウェブサイトとして、多くの方に訪問していただきました。

地上デジタル放送の試験放送の様子。当時はブラウン管テレビが主流で、写真の36インチのブラウン管テレビは、たため1畳分に近い設置面積を要した。

しかし、この当時に使用していた ホームページ公開サービスは 、電話による男女の出会いサービスを提供する会社だったため、自動的に表示される広告の品位が良くない課題がありました。そこで、2004年09月にYahoo! ジオシティーズへ移転しました。

その後、地上デジタル放送に関する豊富な情報を提供するサイトとして、2006年にYahoo!検索サイトにカテゴリ登録されました。カテゴリ登録とは、検索サイトのトップページからジャンルを選んで表示されるウェブサイトのことで、当時は、名誉なことでした。

Yahoo!ジオシティーズを利用していたことは、カテゴリ登録されやすい点で有利でした。さらにYahoo!のカテゴリ登録されたことで、Google検索順位も上がり、「地上デジタル」の検索で5位以内に表示され、月に5万件ものアクセスをいただけるようになりました。この時期がボクのサイトのヒット期となりました。

地上デジタルテレビが普及してからは、徐々にアクセス件数が減ってゆき、月4千件程度になりましたが、かつての栄光が検索エンジンに有利だったようで、ほとんど対策をすることなく、高い順位をいただくことが出来、約14年にわたって利用させていただきました。

ところが、Yahoo!ジオシティーズの2018年10月、Yahoo!ジオシティーズの終了が通知されました。

このため、新しいサイトbokunimo.netへ移転することになりました。

ちなみに、新サイトのアクセスカウンタは、現在「320」。かつての5時間分のアクセス件数に、5か月を要しました。

1995年     ウェブサイト開設
2003年10月   地上デジタル放送の技術情報ページを開設
2004年10月14日 Yahoo!にディレクトリ登録される
2004年11月01日 Yahoo!ジオシティーズへ移転
2005年12月29日 累積アクセス件数10万件
2006年02月16日 Yahoo! 検索のカテゴリ登録★
2008年01月19日 累積アクセス件数100万件
2018年10月01日 Yahoo!ジオシティーズの終了案内
2018年10月13日 bokunimo.netへ移転
2019年03月31日 Yahoo!ジオシティーズ終了

Yahoo!ジオシティーズのおかげで、ボクにもわかる地上デジタルが生まれ育ちました。これからは、親から独立して大人になった気分で、一からやり直そうと思います。

by bokunimo.net