PythonでInstagram APIを使わずに投稿を取得する

前回はTwitterの公式APIを使わずにTweetを取得できるライブラリであるTwitter Scraperを紹介しました。今回はその Twitter Scraper にインスパイアされて作られた Instagram Scraper を使ってみたいと思います。Instagram Scraper は Instagram の公式APIを使わずに投稿を取得することができるPythonライブラリです。

github.com

インストール

まずは Instagram Scraper をインストールします。 pipを使ってインストールしたいところなのですが、Instagram Scraper は今のところpipでのインストールには対応していません。 そこで、リポジトリをクローンしてインストールをします。クローンしたらリポジトリ内にあるrequirements.txtを使って必要なパッケージをインストールします。

$ git clone https://github.com/meetmangukiya/instagram-scraper.git
$ cd instagram-scraper
$ pip install -r requirements.txt

インストールは以上です。

使い方

インストールが完了したら、Pythonインタプリタを起動します。 インタプリタを起動したら、scrape_instagram関数をインポートします。 scrape_instagram関数にタグを指定することで、Instagramの投稿を取得する仕組みになっているようです。

>>> from instagram_scraper import scrape_instagram
>>> 
>>> list(scrape_instagram(['quotes', 'meet'], 1))
[('https://scontent-nrt1-1.cdninstagram.com/vp/6969e25d53bcf493944639c4ceaa8bc2/5C10E661/t51.2885-15/e35/c0.135.1080.1080/s150x150/36885191_734652190205497_1283998134044721152_n.jpg',
  '',
  set(),
  set()),
 ('https://scontent-nrt1-1.cdninstagram.com/vp/5e56f2bfabe1b48881c15e5ee16a7705/5BEE8D29/t51.2885-15/sh0.08/e35/c0.0.662.662/s640x640/37702301_694562980905572_7369649703631192064_n.jpg',
  'Follow ( @textgoalsbabe) ♥ For More',
  set(),
  {'textgoalsbabe'}),
 ('https://scontent-nrt1-1.cdninstagram.com/vp/e093ea347b8c8475d983b4512404ab01/5BEFE9DD/t51.2885-15/e35/c0.134.1080.1080/s150x150/38424785_688684664809911_8521908696647729152_n.jpg',
  '',
  set(),
  set()),
 ('https://scontent-nrt1-1.cdninstagram.com/vp/cdf2ce6a68abf77caae00acbc113a4f3/5B6E05DA/t51.2885-15/e15/c157.0.405.405/38285822_251483489018320_668763636763721728_n.jpg',
  'reunited♡\n'
  '5th hug—8.8.18\n'
  'vereint bis 9.8♛ { @leanaa.swz & @__stellaaaaa\n'
  '#lela #internetfriends #internetfreunde #ibfsquad #ibfgoals #meet '
  '@webfriendsvides \n'
  '@virtuel_r @virtual.ibfs @ifreposts @ibfgoalz_',
  {'ibfgoals',
   'ibfsquad',
   'internetfreunde',
   'internetfriends',
   'lela',
   'meet'},
  {'__stellaaaaa',
   'ibfgoalz_',
   'ifreposts',
   'leanaa.swz',
   'virtual.ibfs',
   'virtuel_r',
   'webfriendsvides'})]

うーん、何がどこに入っているかわからないですね。 そもそも、インスタグラムをスクレイピングして取得したいのは、画像や動画のはずです。 その点ではこのライブラリはあまり適していないと思われます。