2016年3月3日木曜日

InstagramからAPIを使わずにスクレイピングでタグ検索をする

インスタグラムで画像検索してディープラーニングにでも使うか〜
と思ってたらAPIが2015年12月の改訂により全然使えないものになっていた。

https://www.instagram.com/developer/

プライバシーポリシーみたいなのを登録しないと、自分自身と招待した10人位のユーザの情報しか取れない。
こんなんならFlickrのほうがまだマシだ。

https://www.flickr.com/services/api/

とはいえ、Instagramのほうがソーシャル感が強いのは事実。
何とかしようということで、スクレイピングするスクリプトを書いた。

https://github.com/syamoji/getInstagram

インスタグラムのWebページを観察すると、POSTで何かしら投げたら次のページが読み込めることがわかった。

スクリプト上部で検索タグを決めて、取得ページ数を設定したら情報が取得できる。
サーバの負荷にならないように、1ページ取得すると5秒待つ仕様にしてある。
デフォルトではCSVファイルに保存している。

gemとして公開までしてみたいなぁ

3 件のコメント:

  1. こんばんは、Instagramのデータ分析を行いと思い、このブログにたどり着きました。
    しゃもじさんのgithubにあるソースコードを実行してみたのですが、データが取得できませんでした。
    リクエストの結果が

    {"status": "ok", "media": {"count": 41367, "page_info": {"has_previous_page": true, "start_cursor": null, "end_cursor": null, "has_next_page": false}, "nodes": []}}

    となっていることから、リクエストの送信方法が変わった?のではないかと思ったのですが、InstagramのWebページが解読できず、途方に暮れた次第です、、
    お時間ありましたら、一度確認していただけないでしょうか。
    よろしくお願い致します。

    返信削除
    返信
    1. 長らくメンテしてませんでした。
      ちょっと見てみますね。

      削除
  2. 今更ですが、修正いたしました。

    返信削除