質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

MediaWiki

MediaWikiは、Wikipediaを運営するウィキメディア財団が開発するコラボレーションツールです。複数ユーザーによるコンテンツ管理機能を備えるなど、Wikipediaと同じ操作性や編集機能を持ちます。PHPで記述されており、MySQLやPostgreSQLをデータベースに使用できます。

Q&A

解決済

1回答

1213閲覧

Mediawiki APIについて

kokawa2003

総合スコア217

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

MediaWiki

MediaWikiは、Wikipediaを運営するウィキメディア財団が開発するコラボレーションツールです。複数ユーザーによるコンテンツ管理機能を備えるなど、Wikipediaと同じ操作性や編集機能を持ちます。PHPで記述されており、MySQLやPostgreSQLをデータベースに使用できます。

0グッド

0クリップ

投稿2021/07/22 05:48

編集2021/07/23 00:48

https://commons.wikimedia.org/wiki/Main_Page
の右上に検索窓があるかと思いますが、ここに単語をいれると検索できます。
例えばこんな感じ
https://commons.wikimedia.org/w/index.php?search=black+cat&title=Special:MediaSearch&go=Go&type=image
黒い猫の画像がでます。
これと同じことををMediawiki APIでやりたくてこのような処理を書きました
https://commons.wikimedia.org/w/api.php?format=json&action=query&list=search&srsearch=black+cat&srlimit=max
結果はこんなかんじでした
{"batchcomplete":"","limits":{"search":500},"query":{"searchinfo":{"totalhits":405},"search":[{"ns":0,"title":"Setophaga","pageid":17921946,"size":null,"wordcount":0,"snippet":"","timestamp":"2019-03-11T16:23:14Z"},{"ns":0,"title":"Cincinnati Zoo","pageid":17061365,"size":null,"wordcount":0,"snippet":"","timestamp":"2016-10-21T18:24:34Z"},{"ns":0,"title":"Ramphastidae","pageid":156945,"size":null,"wordcount":0,"snippet":"","timestamp":"2016-04-05T15:44:43Z"},{"ns":0,"title":"Parulidae","pageid":2263936,"size":null,"wordcount":0,"snippet":"","timestamp":"2016-07-25T20:50:53Z"},{"ns":0,"title":"Cisticolidae","pageid":2263759,"size":null,"wordcount":0,"snippet":"","timestamp":"2019-12-08T22:38:52Z"},{"ns":0,"title":"Cisticola","pageid":19192973,"size":null,"wordcount":0,"snippet":"","timestamp":"2019-11-12T12:16:48Z"},{"ns":0,"title":"Centropus","pageid":2263769,"size":null,"wordcount":0,"snippet":"","timestamp":"2019-12-18T04:21:52Z"},{"ns":0,"title":"Accipitriformes","pageid":18173240,"size":null,"wordcount":0,"snippet":"","timestamp":"2017-05-11T12:01:41Z"},{"ns":0,"title":"Apalis","pageid":19213632,"size":null,"wordcount":0,"snippet":"","timestamp":"2019-03-07T09:21:58Z"},{"ns":0,"title":"Felis silvestris catus","pageid":948,"size":null,"wordcount":0,"snippet":"","timestamp":"2021-04-30T06:24:44Z"},{"ns":0,"title":"Phoenicurus","pageid":17885964,"size":null,"wordcount":0,"snippet":"","timestamp":"2019-03-10T15:52:18Z"},
...

結論から言って思いっきり違うのですが、どうすれば合わせられるのでしょう。(画像のURLがほしい)
なおこのtitleってのが各ページらしい。
{"ns":0,"title":"Setophaga","pageid":17921946," だと
https://commons.wikimedia.org/wiki/Setophaga
の意味らしい。
だからここにFile:XXXの名前が並ぶはずだ。
https://commons.wikimedia.org/w/api.php?action=opensearch&format=json&search=black+cat&limit=max
も、やってみたが4こしか取れなくて結果も同じになりませんでした。
あと
https://www.mediawiki.org/wiki/API:Opensearch
https://www.mediawiki.org/wiki/API:Search
は熟読したがmediaだけに結果をしぼるってのはわかりませんでした。
ネットで調べると
https://commons.wikimedia.org/w/api.php?action=query&prop=images&imlimit=500&redirects=1&titles=Cat
https://commons.wikimedia.org/w/api.php?action=query&generator=images&prop=imageinfo&gimlimit=500&redirects=1&titles=cat&iiprop=canonicaltitle|url
こういう手法はみつかったがこれはtitles=Catでわかるようにそのタイトルのページがあればできるもので任意文字列で検索する
ものではなかった。
あと使えそうなアクションを
https://www.mediawiki.org/wiki/API:Main_page
で見たが見つけられません。
クエリのオプションも調べたが分かりません
https://www.mediawiki.org/w/api.php?action=help&modules=query
でいい感じで煮詰まってしまいましたが、どういうパラメータでやれば画像一覧が取れるかわかりますか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

https://commons.wikimedia.org/w/api.php?action=query&list=search&srsearch=black_cat&format=json&srnamespace=6&srlimit=max

これだった。
ポイントは&srnamespace=6でこれがFile:を指すらしい。

投稿2021/07/30 06:19

kokawa2003

総合スコア217

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問