Pixabay の API で画像をかき集める

はじめに

おそらくこれが一番知りたいことだと思いますので最初に書きます。

取得上限枚数は 500枚 です。

取得方法

GET をするだけなので特別なことは必要ないです。

1. ユーザ登録をする

API key を取得するために、ユーザ登録をしましょう。

f:id:gregminster:20171210192911p:plain

2. API のドキュメントページに行く

トップからだとどこにAPIのページがあるか分かりづらいです。最下部にリンクがあります。

f:id:gregminster:20171210193020p:plain

具体的には、https://pixabay.com/ja/service/about/api/ です。

3. API key を確認する

ログインをした状態ならば、API key に具体的な値が見えているはずです(緑色の背景)。

f:id:gregminster:20171210193844p:plain

4. リクエストURIを構成する

例えば「ねこ」で検索した結果を取得するには以下のようなアドレスでリクエストします。

https://pixabay.com/api/?key=あなたのAPI key&q=%E3%81%AD%E3%81%93

5. GET する

「4.」のアドレスを叩くと結果が返ってきます。結果を切り取った部分は以下のようになります。

    {
      "previewHeight": 99,
      "likes": 19,
      "favorites": 13,
      "tags": "猫, サバ, 写真",
      "webformatHeight": 423,
      "views": 828,
      "webformatWidth": 640,
      "previewWidth": 150,
      "comments": 8,
      "downloads": 480,
      "pageURL": "https://pixabay.com/ja/%E7%8C%AB-%E3%82%B5%E3%83%90-%E5%86%99%E7%9C%9F-%E9%87%8E%E7%94%9F%E5%8B%95%E7%89%A9%E3%81%AE%E5%86%99%E7%9C%9F-2719821/",
      "previewURL": "https://cdn.pixabay.com/photo/2017/09/05/23/47/cat-2719821_150.jpg",
      "webformatURL": "https://pixabay.com/get/eb32b00620f6003ed95c4518b74b4595eb7eead104b0144097f8c870a5e8b2_640.jpg",
      "imageWidth": 3654,
      "user_id": 686414,
      "user": "Alexas_Fotos",
      "type": "photo",
      "id": 2719821,
      "userImageURL": "https://cdn.pixabay.com/user/2017/12/08/16-14-46-457_250x250.jpg",
      "imageHeight": 2417
    },

取得数の上限について

冒頭にも書いたように、取得できる枚数の上限は「500枚」です。API のパラメータに pageper_page というものが用意されていますが、500枚の上限を超えることはできません。

返ってくる値に id という数値が含まれてはいますが、この数値の範囲指定などをする API のパラメータはないため*1、「API を何度も叩いて、500枚 の単位でぐるぐるとループを回して、画像を大量に取得する」ということはできません。

ということなので、例えば機械学習に使う目的で数千枚数万枚というオーダーでの取得には適していないと思います*2

*1:決め打ちで指定するためのパラメータはある

*2:有料プランだとどうにかなる?のかな?

Powered by はてなブログ