Share
いまやSNSは、マーケティングの主要なチャネルとして活用されており、企業に莫大な利益をもたらしています。
特に、消費者にとっては、他のユーザーが投稿した製品やサービスに関する率直なレビューが、購入を決める上で重要な役割を果たしています。このため、マーケティングに携わる人々にとっては、良いレビューを集めて一箇所に表示することが非常に重要な活動になります。
しかし、問題は、何百万ものユーザーからのレビューを、いかに早く簡単に集めるかという点です。最近では様々なマーケティングツールが提供されており、弊社も開発に携わってきました。
そこで本記事では、Instagramの投稿からデータをクロールする方法について解説したいと思います。
ただし、Instagramの利用規約やデータのプライバシーに関する法律を遵守することが重要です。不正なクローリングはアカウントの停止や法的な問題を引き起こす可能性がありますのでご注意ください。
Instagramからデータを安全にクロールする方法は、公式が出しているAPIを利用することです。
Instagram Graph APIを利用するには、まずFacebook Developerアカウントが必要です。アプリをFacebook Developerポータルで登録し、Instagram Graph APIの利用を設定します。APIを使うためには、アクセストークンを取得します。これはセキュリティ認証のために使用されます。
ドキュメントに従って、特定のAPIエンドポイントにリクエストを送信し、必要なデータを取得します。
APIやスクレイピングツールを使用する際は、アクセス頻度に注意してください。アクセスが多すぎると、アカウントが一時的にブロックされる可能性があります。
さらにプライバシーの尊重に気をつけなければなりません。公開されているデータであっても、個人のプライバシーを尊重することが重要です。
ここで、開発者がよく使用している2つの方法をご紹介します。
Instagramの投稿は普通、次のようなリンクがあります。
https://www.instagram.com/p/{post_id}/
例: https://www.instagram.com/p/CVLYkRcpSoC/
この方法ではリンクの後にパラメータ 「?__a=1」を追加します。
https://www.instagram.com/p/{post_id}/?__a=1
例: https://www.instagram.com/p/CVLYkRcpSoC/?__a=1
上記のリンクにリクエストを送信すると、エンドポイントは以下の情報を含むjsonデータが返ってきます。
画像1 「?__a=1」 エンドポイントを使ってクロールする
返されたデータの中には、異なるサイズの画像が含まれているため、 希望に合ったサイズを選択します。
Instagramは、以下のリンクで投稿の情報を取得するAPIを提供しています。
https://api.instagram.com/oembed
ある投稿の内容をクロールするには、その投稿のURLをパラメータとしてAPIに渡します。次のフォーマットになります。 https://api.instagram.com/oembed?url=your_url
例: 投稿のリンクは下記のとおりです。
https://www.instagram.com/p/fA9uwTtkSN/
上記の投稿の内容をクロールするには次のAPIを呼び出します。
https://api.instagram.com/oembed?url=https://www.instagram.com/p/fA9uwTtkSN/
画像2:embed機能を使ってクロールする
このAPIを使用して取得したデータには、"thumbnail_url"フィールドが含まれています。これにより、取得したサムネイル画像を自由に好きな場所に表示することが可能です。
これまでに、Instagramの写真を取得し、自分のウェブサイトに埋め込む2つの方法を解説しました。しかし、問題は、もし1日に何百万もの投稿をクロールする必要がある場合、どのように対応すれば良いのでしょうか。
このような大量のデータを扱う際に、先に紹介した方法にどのような制限があるのか、また、より効率的な方法が存在するかどうかを見ていきましょう。
まず、この方法を利用するにはユーザーがInstagramにログインしている必要があります。
さらに、APIの呼び出し回数には1日あたり約2000回という制限が設けられています。この回数を超えてAPIを呼び出すと、"Rate limit error"が発生し、再びAPIを使用できるようになるまで1日待つ必要があります。
また、APIはInstagramによって予告なく変更される可能性があり、これがウェブサイトに埋め込まれたデータに影響を及ぼすこともあり得ます。
方法2もまた、特定の制約が存在します。
まず、APIの呼び出し回数には方法1と同じく制限があります。Instagramが定めた回数を超えての呼び出しは不可能です。
加えて、Instagramは現在(記事執筆中の2021年)このAPIの使用を推奨しておらず、将来的には使用できなくなる可能性があります。
これらの制約により、1日に数百万件の投稿をクロールするのは現実的ではありません。
そのため、もう一つの選択肢として「Instagram oEmbed機能」を使用します。この方法では、投稿の基本的なメタデータや埋め込み用のHTMLを取得できます。
Instagram oEmbedは、Facebookの開発者が提供する機能でウェブページやアプリケーションにInstagramのコンテンツ(例えば、写真や動画)を簡単に埋め込むことを可能にするツールです。この機能は、特定のInstagram投稿の公開URLを取得し、それをHTMLやその他のウェブフォーマットに変換することで、埋め込み可能なコンテンツを生成します。
以下のステップを完了することで、Instagramの投稿をウェブサイトやアプリケーションに埋め込むことが可能になります。
Facebookの開発者アカウントの作成:
Instagram oEmbedを利用するには、まずFacebookの開発者アカウントを作成する必要があります。これはFacebook Developersのウェブサイトで行うことができます。
公式モードのFacebookアプリの設定:
Instagram oEmbedを使用するためには、Facebookアプリを作成し、それを「公式モード」に設定する必要があります。これにより、アプリが一般に公開されている状態となり、APIの使用が可能になります。
アクセスコードの取得:
Instagram oEmbed APIを使用するためには、アクセスコード(アクセストークン)が必要です。このアクセスコードは、Facebookの開発者アカウントを介して取得できます。このコードを使用して、APIにアクセスし、必要なデータを取得します。
oEmbed機能の使用にレビュー申請が必要:
InstagramのAPI、特にoEmbed APIを使用する前に、Facebookでレビュー申請を行い、承認を得る必要があります。このプロセスでは、アプリの使用目的や、どのようにInstagramのコンテンツを使用するかなどを説明する必要があります。
Instagram oEmbedの使用方法は以下のように簡単にまとめることができます。
公開投稿のURLを取得:
Instagram上で埋め込みたい公開投稿を選び、そのURLをコピーします。
Facebook開発者アカウントとアプリの設定:
Facebookの開発者アカウントを持っていなければ、まずは作成します。次に、Facebookアプリを作成し、公式モードで設定します。
アクセスコードの取得:
Facebook開発者ポータルから、Instagram oEmbed APIを使用するためのアクセスコード(アクセストークン)を取得します。
oEmbed APIを使用:
Instagram oEmbed APIに、取得した投稿のURLとアクセスコードを渡します。これにより、埋め込み用のHTMLコードやメタデータが返されます。
HTMLコードをウェブサイトに埋め込む:
返されたHTMLコードを、ウェブサイトやブログの該当箇所に貼り付けます。これにより、ウェブページ上にInstagramの投稿が表示されます。
oEmbed機能のアプリケーションの審査方法の詳細については、Facebookの公式ガイドで、下記のリンクにアクセスして詳細を見ることができます。
https://developers.facebook.com/docs/instagram/oembed/
アクセストークンには、「クライアントアクセストークン」と「アプリアクセストークン」の2種類があることに注意してください。
クライアントアクセストークンを使用する場合、APIの呼び出しは数千回に限定されます。一方、アプリアクセストークンを使用すれば、1日に最大500万回までのリクエストが可能です。
したがって、1日に数百万件の投稿をクロールしたい場合は、アプリアクセストークンの使用が必要になります。このアプリアクセストークンの取得方法については、上記のリンクを参照してください。
上記のリンクの手順に従えば、Instagramから毎日数百万件の投稿を簡単にクロールすることができるようになります。
今回の記事では、Instagramから無制限にデータをクロールする方法についてご紹介しました。 ご参考になれば幸いです。
弊社Rabilooはウェブアプリ開発に関する知見をブログ内でご紹介しています。他の記事もご参考ください。
弊社が開発に加わったSNSマーケティングツールの成功事例については018 ZERO ONE EIGHT:モニター参加型の商品クチコミプラットフォームをご覧ください。
Share