0. 인스타그램을 크롤링 하는 3가지 방법
인스타그램을 크롤링하는 데에는 다양한 방법이 존재합니다.
다음 사례들에 대한 코드는 루비로 이루어져 있습니다.
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. 결론
위에 소개해 드린 방법 외에 크롤링 하는 방법은 여러가지가 존재하고 각 목적에 맞게 사용할 수 있습니다.
인스타그램은 로그인을 하지 않으면 한페이지에 해당하는 데이터만 가져올 수 있는 등의 제약이 있습니다.
해시스크래퍼의 인스타그램 수집을 통해 로그인 없이 손쉽게 크롤링을 경험해 보시길 바랍니다.




