🔍

wiki APIで人物の検索がしたい。したくない?

2022/05/21に公開約1,400字

したいでしょ。しかもサムネイルも欲しくない?

ドキュメントをまず読む。

仕様書

https://www.mediawiki.org/wiki/API:Main_page/ja

APIの使い方はここにあった

https://www.mediawiki.org/w/api.php?tableofcontents=0

結論

https://ja.wikipedia.org/w/api.php?action=query&format=json&generator=search&gsrsearch=ここに検索キーワード+hastemplate:生年月日と年齢&prop=pageimages&pithumbsize=300

https://ja.wikipedia.org/w/api.php
?action=query // おまじない
&generator=search // wikiAPIへ「僕はキーワード検索したいよ」って意思表示する
&gsrsearch=ここに検索キーワード+hastemplate:生年月日と年齢 // 人物、このテンプレート使用しがち
&prop=pageimages // wikiAPIへ「サムネイルも欲しいよ」って意思表示する
&pithumbsize=300 // wikiAPIへ「サムネイルwidth300がいいよ」ってお願いする
&format=json // wikiAPIへ「jsonで返して欲しいよ」ってお願いする

&gsrsearch=ここに検索キーワード+hastemplate:生年月日と年齢👈 こいつが味噌(+はアンド検索)

wikiの記事はテンプレートを使って執筆効率化してるそうなのだが、人物のページは大体この「生年月日と年齢」というテンプレートを使ってて、逆に人間以外は使ってない(もしかしたら使ってるケースもあるかもだけど)という人物検索にはもってこいのもの

hastemplateの他にもincategory:人物などの絞り込み方法もあるがwikiのカテゴリは恐ろしいほど細分化されているので全ての人間に「人物」カテゴリがついているかと言われるとそうでもない

例えばマクドナルド兄弟にも例に倣って「人物」のカテゴリはついておらず、

  • マクドナルドの人物
  • 兄弟姉妹の二人
  • スコットランド系アメリカ人
  • 1902年生
  • 1909年生
  • 1971年没
  • 1998年没

といった具合
具体化されすぎてるので、「ざっくり人間を検索をしたいんだが?」という時にはもう少し抽象化して裾野を広げる必要があり、丁度いいのがhastemplate:生年月日と年齢

逆に「1971年没の人物リスト作りたい……」というサイコパス各位におかれましては

https://ja.wikipedia.org/w/api.php?action=query&format=json&generator=search&gsrsearch=incategory:1971年没&prop=pageimages&pithumbsize=300

上記で幸せになってもらえればと思います

まとめる

wikiさん、タダ乗りしておいて本当に厚かましいお願いなのですがドキュメントをもう少しわかりやすk……

Discussion

ログインするとコメントできます