0. Instagramをクロールする3つの方法
Instagramをクロールするにはさまざまな方法があります。
次の例はすべてRubyで書かれています。
1. Public APIを使用する方法
アクセストークンの取得
開発者アカウントを作成し、アプリを登録して認証を受け、アクセストークンを取得する必要があります。
require 'net/http'
require 'json'
access_token = '발급받은 액세스 토큰'
url = URI("https://graph.instagram.com/me?fields=id,username,followers_count&access_token=#{access_token}")
response = Net::HTTP.get(url)
data = JSON.parse(response)
follower_count = data['followers_count']
puts "팔로워 수: #{follower_count}"
利点と欠点
利点:
- 公式APIなのでブロックされることはありません。
欠点:
- 開発者アカウントとアクセストークンが必要です。
- リクエスト数と速度に制限があります。
- 個人情報保護のため、自分のフォロワー数だけを取得し、他のユーザーのフォロワー数を取得することはできません。
2. ウェブページを利用する方法
require 'nokogiri'
require 'selenium-webdriver'
driver = Selenium::WebDriver.for :chrome
url = "https://www.instagram.com/suuu_yeony/"
driver.get(url)
doc = Nokogiri::HTML(driver.page_source)
follower_count = doc.at('button:contains("팔로워")').text
puts "#{follower_count}"
利点と欠点
利点:
- 他のユーザーのフォロワー数も取得できます。
欠点:
- 検出されるとIPブロックやアカウントブロックを受ける可能性があります。
- セレニウムの特性上、安定性が低いことがあります。
3. Private APIを使用する方法
JSON形式で返されたデータのパースを活用する方法です。
利点と欠点
利点:
- 他のユーザーのフォロワー数も取得できます。
- 安定性が高い
欠点:
- 検出されるとIPブロックやアカウントブロックを受ける可能性があります。
4. 結論
上記で紹介した方法以外にも、さまざまなクロール方法が存在し、それぞれの目的に合わせて使用できます。
Instagramはログインしないと1ページ分のデータしか取得できない制約があります。
HashScraperのInstagram収集を通じて、ログインなしで簡単にクロールを体験してみてください。




