데이터 수집의 지옥, 인스타그램? 이 3가지 방법으로 뚫어버려!

인스타그램 데이터 수집 방법과 장단점, 공식 API, 웹페이지, Private API 활용법 소개

3
데이터 수집의 지옥, 인스타그램? 이 3가지 방법으로 뚫어버려!

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. 결론

위에 소개해 드린 방법 외에 크롤링 하는 방법은 여러가지가 존재하고 각 목적에 맞게 사용할 수 있습니다.

인스타그램은 로그인을 하지 않으면 한페이지에 해당하는 데이터만 가져올 수 있는 등의 제약이 있습니다.

해시스크래퍼의 인스타그램 수집을 통해 로그인 없이 손쉽게 크롤링을 경험해 보시길 바랍니다.

댓글

댓글 작성

이메일은 공개되지 않으며, 답글 알림에만 사용됩니다.

이어서 읽어보세요

새 글 알림 받기

해시스크래퍼 기술 블로그의 새 글이 발행되면 이메일로 알려드립니다.

이메일은 새 글 알림에만 사용됩니다.