Python으로 Twitter 데이터 스크랩하기 [2개의 API 사용]

게시 됨: 2020-11-30

목차

소개

Twitter와 같은 소셜 미디어 플랫폼은 데이터 세트를 수집하기 위한 훌륭한 저장소 중 하나입니다. 새로운 데이터 과학 프로젝트를 진행하려면 상당한 양의 데이터가 필요하며 데이터 세트를 수집하는 것은 쉬운 일이 아닙니다.

그리고 트위터는 다양한 사고방식과 다른 감성을 가진 사람들의 트윗 모음이기 때문에 다양한 장르의 데이터를 제공합니다. 편향이 없는 이러한 종류의 데이터 세트는 새로운 기계 학습 모델을 훈련하는 데 매우 필요한 전제 조건입니다.

시작하자!

Twitter 데이터 스크래핑을 위한 2가지 API를 살펴보겠습니다.

  1. 트위피
  2. 트윈트

트위피

Tweepy API를 사용하여 데이터 스크래핑을 위한 파이썬 코드를 살펴보기 전에 Twitter 개발자 계정의 자격 증명이 필요하며 이미 가지고 있는 경우 케이크 조각이라는 것을 알아야 합니다.

개발자 계정이 없는 사람들은 여기에서 신청할 수 있습니다 . 그리고 개발자 계정을 신청하기 전에 트위터 계정이 있어야 합니다. 개발자 계정을 신청하는 것은 쉬운 과정이며 응용 프로그램은 신청 이유 등과 같은 몇 가지 기본적인 질문을 합니다. 그리고 개발자 계정의 승인은 일반적으로 2-3일이 걸립니다.

개발자 계정에 대한 승인을 받으면 "키 및 토큰" 섹션에서 소비자 API 키, 액세스 토큰 및 액세스 토큰 암호를 기록해 둡니다.

또한 일주일이 지나지 않은 트윗만 스크랩할 수 있는 것처럼 tweepy에 대한 제약이 거의 없다는 점에 유의해야 합니다. 15분 동안 최대 18000개의 트윗을 스크랩할 수 있습니다.

좋습니다. 이제 개발자 계정의 키와 토큰이 있으므로 이를 인증해 보겠습니다.

consumer_key = " 소비자 키 "

consumer_secret = " 소비자 비밀 "

access_token = " 액세스 토큰 "

access_token_secret = " 당신의 토큰 비밀 "

권한 부여 = tweepy.OAuthHandler(consumer_key, consumer_secret)

Authorization.set_access_token(access_token, access_token_secret)

API = tweepy.API(인증, wait_on_rate_limit = True )

이제 자격 증명으로 인증했으므로 특정 계정의 트윗을 스크랩해 보겠습니다. 일단은 Sundar Pichai 씨의 트윗을 스크랩해 봅시다.

사용자 이름 = ' 순다르피차이 '

카운트 = 100

시도 :

#라인1

Tweets_obj = tweepy.Cursor(api.user_timeline,id = 사용자 이름).items(수)

#줄2

Tweets_list = [[tweet.created_at, tweet.id, tweet.text] tweets_obj 트윗 ]

#라인3

트윗_df = pd.DataFrame(tweets_list)

BaseException e제외하고 :

print ( ' 문제가 발생했습니다, ' , str (e))

위의 스니펫에서 line1은 모든 트윗이 포함된 반복 가능한 개체를 만들고 "tweeets_obj" 변수에 할당합니다. 반복 가능한 객체 생성이 끝나면 이를 반복하고 모든 데이터를 추출해 보겠습니다.

"created_at", "id", "text"와 같은 몇 가지 속성만 추출하고 2D 배열의 각 항목에 추가합니다. 각 항목에는 우리가 스크랩한 각 트윗의 모든 데이터가 있습니다. 이제 각 항목으로 속성이 있는 2D 배열이 있으므로 "pd.DataFrame()" 구문을 사용하여 데이터 프레임으로 변환할 수 있습니다.

어레이를 데이터 프레임으로 변환하는 이유는 유연성, 사전 정의된 방법의 가용성 및 손쉬운 액세스로 인해 데이터 과학 프로젝트의 모든 데이터 구조에서 두드러집니다.

마찬가지로 특정 텍스트 쿼리가 있는 데이터를 스크랩하는 코드를 살펴보겠습니다.

text_query = ' 로컬용 보컬 '

카운트 = 100

시도 :

#라인1

Tweets_obj = tweepy.Cursor(api.search,q = text_query).items(count)

#줄2

Tweets_list = [[tweet.created_at, tweet.id, tweet.text] tweets_obj 트윗 ]

#라인3

df = pd.DataFrame(tweets_list)

BaseException e제외하고 :

print ( ' 문제가 발생했습니다, ' , str (e))

위 스니펫에서 모든 것은 이전 스니펫과 동일합니다. 마침내 우리는 "vocal for local"이라는 텍스트 쿼리를 포함하는 모든 트윗으로 데이터 프레임을 만들었습니다.

리트윗 수, 즐겨찾기 수 등과 같은 더 많은 속성을 포함하는 것과 같이 보다 구체적이거나 사용자 정의된 데이터 스크래핑을 찾고 있다면 구문을 사용자 정의하고 tweepy에서 제공하는 다른 속성을 추출할 수 있습니다. tweepy에서 제공하는 다른 속성에 대한 자세한 내용은 설명서 를 참조하십시오 .

트윈트

Twint API는 개발자 계정 자격 증명이 필요하지 않으며 인증 키 없이 쉽게 트윗을 스크랩할 수 있습니다. 또한 twint는 트윗 수, 시간 프레임, 스크래핑 제한 등과 같은 제한이 없습니다. Twint는 원활한 데이터 스크래핑과 사용하기 쉬운 API를 제공합니다.

우리는 twint API에서 그의 사용자 이름을 사용하여 사람의 팔로워 목록을 인쇄할 수 있습니다.

t_obj = twint.Config()

t_obj.Username = " 순다르피차이 "

twint.run.Followers(t_obj)

위의 스니펫에서 twint.Config()는 twint API를 구성하고 작업을 시작합니다. 그리고 객체를 할당한 후 작업에 해당 참조를 사용할 수 있습니다. "t_obj.Username"은 입력한 사용자 이름을 할당합니다. 그리고 twint.run.Followers는 해당 사용자 이름의 모든 팔로워를 검색합니다.

스크랩한 데이터를 tweepy API와 유사한 데이터 프레임에 저장할 수도 있습니다.

t_obj.Limit = 100

t_obj.Username = " 순다르피차이 "

t_obj.Pandas =

twint.run.Followers(t_obj)

result_df = twint.storage.panda.User_df

스니펫의 모든 것은 이전 스니펫과 거의 동일하지만 스크랩한 데이터를 데이터 프레임으로 변환하는 "twint.storage.panda.User_df" 구문의 추가 행만 있습니다. 결과 데이터 프레임은 주어진 사용자 이름의 팔로워 목록으로 구성됩니다.

특정 사용자 이름의 팔로어 데이터를 스크랩하는 것을 보았으므로 이제 특정 계정의 트윗을 스크랩하는 코드를 살펴보겠습니다.

t_obj.Search = " from:@sundarpichai "

t_obj.Store_object =

t_obj.Limit = 20

twint.run.Search(t_obj)

트윗 = t.search_tweet_list

인쇄 (트윗)

위의 스니펫에서는 특정 인물의 트윗을 검색하도록 구성된 객체를 만들고 있으며 "t_obj.Limit" 구문을 사용하여 스크랩하면서 트윗의 제한을 설정할 수도 있습니다. 검색을 실행한 후 모든 트윗 목록을 생성하고 필요에 따라 이를 로컬 변수에 할당할 수 있습니다.

특정 계정의 스크랩 정보 스니펫을 본 후 특정 키워드가 포함된 트윗을 스크랩하는 방법에 대한 간단한 질문이 있을 수 있습니다. 문제가 아닙니다. Twint에는 이에 대한 솔루션이 있습니다.

t_obj.Search = " 데이터 과학 "

t_obj.Store_object =

t_obj.Limit = 100

twint.run.Search(t_obj)

트윗 = t.search_tweet_list

인쇄 (트윗)

위의 스니펫은 특정 계정의 트윗을 스크랩하기 위한 스니펫과 동일하지만 line1에서 한 가지 차이점이 있습니다. 편의에 따라 데이터 프레임으로 변환할 수도 있습니다.

twint API에 대한 자세한 내용은 저장소 및 설명서 를 참조 하십시오.

결론

우리는 데이터 스크랩의 중요성을 이해했습니다. Twitter 데이터 스크랩을 위한 두 가지 API와 해당 기능을 살펴보았습니다. 스크랩한 데이터를 필요한 파일 형식으로 변환하는 몇 가지 방법을 보았습니다. 이제 이러한 API에 대해 알게 되었으므로 데이터 과학 프로젝트를 위한 데이터 스크랩을 시작하십시오!

upGrad우리 는 기꺼이 도움을 드리며 파이썬을 배우면 얻을 수 있는 기회에 대해서도 알려드리고자 합니다. Python은 가장 널리 사용되는 최신 기술인 기계 학습 및 데이터 과학에 광범위하게 사용되었습니다. Python을 배우고 이러한 기술에 대한 지식을 갖추면 해당 분야에서 두각을 나타내고 더 나은 직업 기회를 얻을 수 있습니다.

우리는 이 분야에서 탁월하기 위해 필요한 모든 기술을 제공하기 위해 업계 전문가 및 최고의 학술 기관과 함께 개발한 많은 과정을 보유하고 있습니다. 파이썬 지식을 활용하고 경력 전망을 높이는 데 도움이 되는 몇 가지 과정:

데이터 과학:

IIIT-B로 개발된 upGrad의 온라인 데이터 과학 프로그램을 확인하십시오. 이 프로그램은 이 분야에 진출하여 귀하의 지식으로 업계에 이름을 남길 수 있는 본격적인 데이터 과학 과정입니다.

데이터 과학 과학 석사 : 리버풀 존 무어스 대학 및 IIIT-B와 협력하여 개발되었으며 세계 최고의 대학 중 하나에서 데이터 과학 석사 학위를 받았습니다.

기계 학습:

기계 학습 및 AI 고급 인증 : 인도 최고의 교육 기관 중 하나인 IIT 마드라스가 upGrad와 제휴하여 개인이 이 과정을 통해 기계 학습에 대한 완전한 지식을 가질 수 있도록 기계 학습에 대한 고급 과정을 만들었습니다.

기계 학습 및 AI의 과학 석사 : 리버풀 존 무어스 대학과 IIIT-B는 upGrad와 협력하여 개인이 기술을 자세히 배우고 이 기술에서 정식 학위를 취득하여 성공적인 이력을 쌓을 수 있도록 완전한 과학 학위를 제공합니다. 이 필드의 경로입니다.

기계 학습 및 AI의 PG 디플로마 : IIIT-B와 upGrad는 개인이 기계 학습 및 AI에 대한 12개월 과정을 이수하고 이 과정을 통해 이 기술에 입문할 수 있는 기회를 가질 수 있도록 돕습니다.

데이터 스크래핑이란 무엇입니까?

데이터 스크래핑은 컴퓨터 소프트웨어가 다른 프로그램에서 생성된 출력에서 ​​데이터를 스크래핑하는 프로세스를 나타냅니다. 웹 스크래핑은 다른 웹사이트에서 데이터나 정보를 수집하는 데 사용되는 데이터 스크래핑 유형입니다. 웹 스크래핑에서 응용 프로그램은 웹 사이트에서 중요한 정보를 수집하는 데 사용됩니다. 웹 스크래핑 프로그램은 HTML(Hypertext Transfer Protocol) 또는 웹 브라우저를 사용하여 WWW(World Wide Web)에 빠르고 쉽게 액세스할 수 있습니다.

Twitter에서 데이터 스크래핑이 필요한 이유는 무엇입니까?

소셜 미디어의 데이터 스크래핑은 플랫폼에서 사용할 수 있는 데이터를 추적, 평가 및 조사하는 데 도움이 됩니다. Twitter는 가장 인기 있는 플랫폼이며 Twitter 데이터를 스크랩하면 사용자 행동, 경쟁 전략, 감정 분석을 분석하고 사용자, 동료 및 비즈니스의 트윗에서 세계에서 가장 인기 있는 소셜 채널에서 일어나는 일에 대한 최신 정보를 얻을 수 있습니다. 당신에게 문제. Twitter 데이터 스크래핑 서비스는 최단 시간에 종단 간 요구 사항을 처리하고 필요한 데이터를 제공합니다. 예를 들어 Twitter는 크롤러가 API를 통해 데이터를 수집하여 사용자 및 활동에 대한 정보의 양을 제한할 수 있도록 허용합니다.

API란 무엇입니까?

응용 프로그래밍 인터페이스는 디지털 장치, 소프트웨어 프로그램 및 데이터 서버가 서로 통신할 수 있도록 하는 아주 작은 코드이며 현재 우리가 의존하는 많은 서비스의 중요한 백본입니다. API는 컴퓨터를 사람과 연결하는 사용자 인터페이스와 달리 컴퓨터 또는 소프트웨어를 서로 연결합니다. 소프트웨어에 통합하는 컴퓨터 프로그래머가 아닌 다른 사람(최종 사용자)이 직접 사용하도록 설계되지 않았습니다. API는 종종 프로그래머에게 도구나 서비스 역할을 하는 많은 구성 요소로 구성됩니다.