AdsPower
AdsPower

인스타그램 스크래핑 방법? 스크래핑을 최대한 활용하는 3가지 방법

By AdsPower||8,934 Views

over 13억 명의 사용자를 보유한 Instagram은 기업을 위한 귀중한 데이터의 금광입니다. 시장 조사, 리드 생성 및 성과 모니터링에 활용하세요. 하지만 인스타그램에서 데이터를 스크래핑하는 것은 까다로운 부분입니다.

이 절차는 간단하지 않으며 Instagram 정책이나 기술적 모호성으로 인해 많은 복잡성을 가지고 있습니다.

이 가이드는 Instagram 스크래핑 방법에 대한 해답을 제공하며, 저용량 및 고용량 코드 방식, 그리고 무용량 방식을 포함하는 세 가지 방법을 소개합니다.

인스타그램 스크래핑은 합법인가요?

Instagram 스크래핑이 합법적인가? 라는 질문에 대한 답은 예 이면서 아니오 입니다. 스크래핑하려는 데이터 유형에 따라 다릅니다. Instagram에서 공개적으로 사용 가능한 데이터를 스크래핑하려는 경우, 정답은 '예'입니다.

하지만 Instagram 로그인이 필요한 개인 데이터를 위해 Instagram을 스크래핑하는 경우 명시적으로 금지되어 있으므로 마이그레이션해야 합니다. ht face 계정 정지 및 최악의 경우 법적 조치를 받을 수 있습니다. 하지만 공개 데이터의 경우에도 합법적인 스크래핑 방법을 확보해야 합니다.

Instagram에서 합법적인 데이터를 스크래핑하려면 Instagram에서 제공하는 API를 사용할 수 있습니다. 여기에는 Instagram Graph API와 Instagram Basic Display API가 포함됩니다.

Graph API를 사용하면 비즈니스 및 생성자 계정에 대한 데이터를 관리하고 추출할 수 있습니다. 반면 Basic Display API는 읽기 전용 권한을 제공합니다. 기본 사용자 정보에 대한 액세스입니다. 이 두 API 모두 Instagram의 스크래핑 관련 정책을 준수하므로, 이 API를 사용하여 Instagram에서 스크래핑하는 것은 완전히 합법적입니다.

그러나 비공개 API를 사용하거나 사전 허가 없이 플랫폼에 액세스하는 불법적인 수단을 사용하는 경우 스크래퍼를 일반 사용자로 보이도록 하면 승인되지 않은 스크래핑에 해당하여 Instagram의 서비스 약관.

인스타그램 스크래핑을 시작하기 전에, 한 걸음 물러서서 "인스타그램이 스크래핑을 허용할까요?"라고 스스로 생각해 보세요. 그리고 스크래핑을 할 때는 신중하게 작업해야 합니다.

어떤 인스타그램 데이터를 쉽게 긁어낼 수 있을까요?

Instagram에서 데이터를 스크래핑하는 방법을 알려드리기 전에, 먼저 플랫폼에서 합법적으로 스크래핑할 수 있는 데이터가 무엇인지 알아보겠습니다. 합법적인 Instagram 웹 스크래핑을 통해 다음 세 가지 범주의 데이터에 접근할 수 있습니다.

  • 해시태그: 가장 인기 있거나 최근 사진 및 동영상에 특정 해시태그가 지정된 캡션을 추가할 수 있습니다.

  • 프로필: 게시물, 미디어 수, 팔로워/팔로잉 수 등의 프로필 데이터를 얻을 수 있습니다.

  • 게시물: 댓글 수, 좋아요 수, 프로필 ID, 게시 날짜, URL 등의 지표를 확인할 수 있습니다.

인스타그램 스크래핑하는 3가지 방법

인스타그램을 스크래핑하는 세 가지 방법이 있습니다. 필요와 리소스에 맞는 방법을 선택하세요.

Instagram API를 사용하여 Instagram 스크래핑하기

Instagram 스크래핑 방법에 대한 단계별 가이드를 소개합니다. 하지만 먼저 다음 요구 사항을 충족해야 합니다.

  • 인스타그램 비즈니스/크리에이터 계정

  • 인스타그램 비즈니스/크리에이터 계정에 연결된 페이스북 페이지

  • Instagram Graph API를 사용하려면 Facebook 개발자 계정이 필요합니다.

  • 최소 설정으로 등록된 Facebook 앱 설정

이러한 전제 조건을 완료하면 다음 단계는 다음과 같습니다.

Facebook 로그인 기능 추가:

Facebook 앱 대시보드로 이동하여 왼쪽 패널에서 “제품”버튼을 클릭하세요. ;창. 거기서 Facebook 로그인 제품을 추가하세요. 지금은 이 제품의 설정을 변경하지 마시고 기본값으로 두세요.

다음으로, Facebook 앱에 로그인하는 기능을 구현해야 합니다. Facebook 로그인 설명서를 확인하고 로그인 절차 요청에 다음 두 가지 기본 권한을 적용하세요.

인스타그램 스크래핑 방법? 스크래핑을 최대한 활용하는 3가지 방법

[이미지 출처]

액세스 토큰 생성:

Instagram 계정의 앱 대시보드에서 작업을 수행하려면 사용자 액세스 토큰이 필요합니다. 대시보드 페이지 오른쪽에서 사용자 또는 페이지 드롭다운을 클릭하고 사용자 액세스 토큰 가져오기를 선택하세요.

앱(이 경우 귀하의 앱)이 위에 언급된 권한을 요청하고 있음을 알리는 팝업 창이 나타납니다. Simp 계속 또는 확인 버튼을 누르면 대시보드의 액세스 토큰 필드에 사용자 액세스 토큰이 표시됩니다.


인스타그램 스크래핑 방법? 스크래핑을 최대한 활용하는 3가지 방법

[이미지 출처]

이제 사용자 액세스 토큰을 사용하여 Instagram 계정에 대한 몇 가지 기본 쿼리를 실행해 보겠습니다.

1. Facebook 페이지 ID 가져오기:

먼저, Instagram 비즈니스 계정에 연결된 Facebook 페이지의 ID가 필요합니다. 이를 위해 대시보드에서 다음 Get 쿼리를 실행합니다.

"https://graph.facebook.com/v19.0/me/accounts?access_token={access-token}"


이 함수는 Facebook 사용자에게 속한 Facebook 페이지의 이름과 ID를 반환합니다. 출력은 다음과 같습니다.

{
"데이터": [
{
"액세스_토큰": "EAAJjmJ...",
"카테고리": "앱 페이지",
"카테고리_목록": [
{
"아이디": "2301",
"이름": "앱 페이지"
}
],
"이름": "메트릭사우루스",
"아이디": "134895793791914",
"작업": [
"분석",
"광고",
"보통",
"콘텐츠 만들기",
"관리"
]
}
]
}


Instagram 비즈니스 계정에 연결된 페이지의 ID를 복사하세요.

2. Instagram 비즈니스 계정 ID 가져오기:

Facebook ID를 사용하여 명령줄에 다음 스크립트를 입력하고 제출을 누르세요.

134895793791914?필드=인스타그램_비즈니스_계정


다음과 같은 출력이 표시됩니다.

{
"instagram_business_account": {
"id": "17841405822304914" // 연결된 IG 사용자 ID
},
"id": "134895793791914" // Facebook 페이지 ID
}


3. Instagram 계정의 미디어 객체 가져오기:

출력에서 Instagram ID를 복사하고 다음 스크립트를 실행하여 Instagram 비즈니스 계정에 현재 게시된 모든 스토리의 ID를 가져옵니다.

17841405822304914/stories


출력에는 각 스토리의 ID가 포함됩니다.

{
"data": [
{
"id": "17918195224117851"
},
{
"id": "17895695668004550"
},
{
"id": "17899305451014820"
},
{
"id": "17896450804038745"
},
{
"id": "17881042411086627"
},
{
"id": "17869102915168123"
}
]
}


이것은 하나의 예시일 뿐입니다. Instagram Graph API를 사용하면 Instagram 사용자의 메타데이터와 같은 다른 정보도 얻고 해시태그 검색도 수행할 수 있습니다.

이제 Instagram에서 데이터를 스크래핑하는 또 다른 방법을 알아보겠습니다.

코드 없는 클라우드 스크래퍼를 사용하여 Instagram 스크래핑하기

코딩 경험이 없는 사람들에게는 위의 방법이 이해하기 어려울 수 있으므로, 그대로 실행해 보세요. 하지만 걱정하지 마세요. 코드가 전혀 필요 없이 작업을 완료하는 Instagram 스크래퍼가 있습니다.

Apify.

Apify Instagram 스크래퍼 페이지로 이동하세요:

Apify Instagram 스크래퍼 페이지를 열고 클릭하세요.무료로 체험하기 버튼.


인스타그램 스크래핑 방법? 스크래핑을 최대한 활용하는 3가지 방법

이메일 주소, Google 또는 Github 계정을 사용하여 Apify에 가입하세요. 그러면 실제 Instagram 스크래핑이 발생하는 Apify 콘솔로 이동합니다.

타겟 Instagram URL 수집:

Instagram 앱이나 웹사이트를 사용하여 스크래핑하려는 모든 Instagram 계정의 프로필 URL을 수집합니다. Apify 콘솔에서 bsp;모든 URL을 주어진 입력 필드에 한 번에 하나씩 붙여넣으세요. 한 번에 모두 입력하려면 일괄 수정 버튼을 클릭하세요.

인스타그램 스크래핑 방법? 스크래핑을 최대한 활용하는 3가지 방법

Apify는 제공된 URL에 대해 세 가지 스크래핑 옵션을 제공합니다. 게시물, 댓글을 스크래핑하거나 프로필에서 다양한 세부 정보를 가져올 수 있습니다.

저장을 클릭하고 시작하세요:

나머지 설정은 변경하지 않고 저장 및 시작을 눌러 스크래퍼를 실행합니다. 결과는 행 수가 지정된 개수와 같은 표 형식이 됩니다. 프로필 URL 중 여러 개를 제공했는데, 여기에는 프로필 메타데이터(예: 약력, 팔로워 수, 게시물 수, 릴 수, 계정 ID, 확인 상태)가 포함된 여러 열이 있습니다. />

인스타그램 스크래핑 방법? 스크래핑을 최대한 활용하는 3가지 방법

결과 저장:

이제 '결과 내보내기' 버튼을 누르고 팝업 창에서 원하는 파일 형식을 선택하세요. 또는 필요하지 않은 필드는 생략합니다. 그런 다음 결과를 다운로드하고 새 탭에서 보거나 링크를 통해 공유할 수 있습니다.

인스타그램 스크래핑 방법? 스크래핑을 최대한 활용하는 3가지 방법

프로그래밍 언어를 사용하여 Instagram 스크래핑하기

요구 사항이 일반적이지 않고 탄탄한 프로그램이 있다면, 나만의 Instagram 스크래퍼를 만드는 것이 가장 효율적인 솔루션이 될 수 있습니다. 지식을 쌓거나 팀에 개발자가 있어야 합니다. 웹 스크래핑 프레임워크와 결합된 모든 프로그래밍 언어를 사용하면 가능합니다.

이 가이드는 Python과 브라우저 자동화 프레임워크인 Selenium을 사용하여 Instagram을 스크래핑하는 방법을 보여줍니다.

필수 라이브러리 가져오기:

시작하려면 Selenium, 해당 웹 드라이버, Selenium-Stealth를 포함한 기본 라이브러리를 가져와 탐지를 방지하세요.

셀레늄에서셀레늄에서가져오기 웹 드라이버
에서 selenium.webdriver.common.by 가져오기 작성자
에서 pprint 가져오기 인쇄
가져오기 json
에서 셀레늄_스텔스 가져오기 스텔스


pprint 라이브러리는 출력물을 깔끔하게 인쇄하여 가독성을 높이는 데 도움을 줍니다.

인스타그램 사용자 이름 수집:

목록을 만들고 타겟팅하는 Instagram 프로필의 사용자 이름을 추가하세요.

사용자 이름=["natureismetal", "miteuniversity", "샘스테일러", "더락"]
프록시 = "서버:포트"
출력 = {}


output 변수는 결과를 저장하는 사전입니다.

main 함수를 정의하세요:

메인 함수는 사용자 이름 목록을 한 번에 하나씩 탐색하고 각 사용자 이름에 대해 스크래핑 함수를 호출합니다.

def main():
사용자 이름에 대한 사용자 이름 in 사용자 이름:
(사용자 이름) 스크랩


브라우저 설정을 관리하는 함수를 정의합니다.

이 함수는 각 스크래핑 요청 전에 브라우저 설정을 조정하여 익명성을 추가하여 Instagram의 감지를 회피합니다. 이러한 변경 사항에는 프록시 순환, Selenium-Stealth 설정 구성 및 인공 사용자 에이전트 생성이 포함됩니다.

def 브라우저 준비():
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument(f'--프록시-서버={프록시}')
chrome_options.add_argument("시작-최대화")
chrome_options.add_experimental_option("스위치 제외", ["자동화 활성화"])
chrome_options.add_experimental_option('useAutomationExtension', 거짓)
드라이버 = webdriver.Chrome(옵션= chrome_options)
스텔스(드라이버,
user_agent= 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.53 Safari/537.36',
언어= ["en-US", "en"],
vendor= "Google Inc.",
platform= "Win32",
webgl_vendor= "인텔 주식회사.",
renderer= "Intel Iris OpenGL 엔진",
fix_hairline= 거짓,
run_on_insecure_origins= 거짓,
)
반환 드라이버


스크래핑 함수 정의:

main 함수에서 호출되는 scrape() 함수는 단일 Instagram 사용자 이름을 인수로 받아서 다음을 생성합니다. 프로필 엔드포인트는 Chrome 브라우저에서 prepare_browser() 함수를 통해 생성된 요청을 전송하는 데 사용합니다.

또한 요청 상태를 확인합니다. 요청이 로그인 페이지로 리디렉션된 경우 요청이 실패했음을 의미합니다. 반면 로그인 문자열이 없으면 요청이 성공하고 결과는 JSON으로 구문 분석되어 사용자 이름과 함께 parse_data() 함수로 전송됩니다.

def 스크레이핑(사용자 이름):


url = f'https://instagram.com/{사용자 이름/?__a=1&__d=dis'
크롬 = 브라우저_준비()
크롬.get(url)
인쇄 (f"시도 중: {chrome.current_url}")


만약 "로그인" 에서 chrome.current_url:
인쇄 ("로그인 실패/재디렉토리")
chrome.quit()

그렇지 않으면:
인쇄 ("성공")
resp_body = chrome.find_element(By.TAG_NAME, "body").text
data_json = json.loads(resp_body)
사용자 데이터 = data_json['graphql']['사용자']
parse_data(사용자 이름, 사용자_데이터)
chrome.quit()


parse_data() 함수 정의:

이 함수는 user_data 인수의 JSON 데이터를 구문 분석하여 원하는 데이터 필드를 가져옵니다. 이 예제에서는 사용자의 전체 이름, 계정 카테고리, 팔로워 수 및 게시물 캡션을 스크래핑합니다.

def 데이터_분석(사용자 이름, 사용자_데이터):
캡션 = []


if len(user_data['에지_소유자_타임라인_미디어']['에지']) > 0:
노드에 대한노드에 대한 user_data['edge_owner_to_timeline_media']['edges']:
만약 len(노드['노드']['edge_media_to_caption']['가장자리']) > 0:
만약 노드['노드']['edge_media_to_caption']['가장자리'][0]['노드']['텍스트']:
captions.append(

노드['노드']['edge_media_to_caption']['가장자리'][0]['노드']['텍스트'])

출력[사용자 이름] = {
'이름': user_data['전체_이름'],
'카테고리': 사용자_데이터['카테고리_이름'],
'팔로워': user_data['팔로워_가장자리']['개수'],
'게시물': 캡션,

}


드라이버 코드를 작성하세요:

드라이버 코드는 스크래핑 프로세스를 시작하고, 데이터를 출력 변수로 추출한 후, 해당 변수에 pprint() 함수를 호출하여 보기 좋게 표시합니다.

if __name__ == '__main__':
main()
pprint(출력)


AdsPower Antidetect Browser를 통한 탐지 우회

Instagram은 스크래핑에 있어 엄격하며 플랫폼의 공개 데이터에 대한 접근 권한을 매우 제한적으로 제공합니다. 여기에는 다음과 같은 기본 수준의 정보가 포함됩니다. 프로필 ID, 팔로워 수, 좋아요 수, 댓글 수. 이보다 더 깊이 파고들려면 로그인이 필요하며, 이는 Instagram 정책에 위배되며 계정이 정지될 수 있습니다.

AdsPower는 Instagram에서 데이터를 스크래핑할 때 낮은 프로필을 유지하는 데 도움이 되므로 유용합니다. 이는 Instagram 정책을 위반할 가능성이 있는 데이터입니다.AdsPower는 IP 회전 및 속도 제한과 같은 탐지 방지 기술을 사용하여 스크래핑 방지 조치를 회피합니다.

그러니 다음에 Instagram을 스크래핑할 때는 코드가 없는 도구나 비공식 Instagram API를 사용해야 하므로 반드시 AdsPower를 사용하여 브라우저에서 탐지 방지 기능을 활성화하여 탐지를 우회하세요.

결론

Instagram은 플랫폼에서 공개적으로 사용 가능한 데이터에 대해서만 스크래핑을 허용하며, 해당 플랫폼에는 두 가지 API가 제공됩니다. 하지만 bsp;이러한 API는 매우 기본적인 수준의 스크래핑을 제공하지만, 실제로 중요한 Instagram 데이터를 스크래핑할 수는 없습니다.

이렇게 하면 타사 웹 스크래퍼를 사용하거나 프로그래밍 언어를 사용하여 자체 스크래퍼를 만들어야 합니다. 그러나 Instagram을 스크래핑하는 것은 이러한 비공식적인 방법을 사용하면 탐지될 가능성이 있으므로 AdsPower 안티디텍트 브라우저를 사용하여 추가적인 보호를 받으세요.

AdsPower

모든 업계를 위한 최고의 다중 로그인 브라우저

인스타그램 스크래핑 방법? 스크래핑을 최대한 활용하는 3가지 방법

다른 사람이 읽은 항목