본문 바로가기
데이터&AI/데이터분석

Twitter(x)의 데이터를 분석해보기 - 2 (feat. python & MONEY!!)

by 일등박사 2024. 9. 4.
728x90

 

 

2024.09.03 - [데이터&AI/데이터분석] - Twitter(x)의 데이터를 분석해보기 - 1 (feat. python)

지난 포스팅에이어!!!

이제는 유명인의 글을 긁어오기위하여!! 

코드를 돌려보았습니다!!

 

그런데,, 계쏙 에러가!!...

그래서 알고보니!!!!

데이터 수집은,, 100$ 결재하는 Basic부터 가능했습니다!.

그렇게 되면 15분간 15개 요청이 가느한 수준입니다!!

 

그래서,, 결재를 하고 왔습니다!!

 

이제다시 코드를 넣고 본격적으로 시작해보겠습니다!!!

 

1. 일론머스크의 트윗 가져오기!!

 - a. 일론머스크의 계정 id번호 찾기

import requests
import os
import json

def bearer_oauth(r):
    """
    Bearer Token 으로 oauth 권한 받음!! r을 리턴해서 이후 header에 넣는다!!
    """
    r.headers["Authorization"] = f"Bearer {bearer_token}"
    r.headers["User-Agent"] = "v2UserLookupPython"
    return r

bearer_token = mykeys.Bearer_Token

## 여기에 사용자 아이디입력!! : elonmush
usernames = "usernames=elonmusk"
user_fields = "user.fields=description,created_at"

user_info_url = "https://api.twitter.com/2/users/by?{}&{}".format(usernames, user_fields)

response = requests.request("GET", user_info_url, auth=bearer_oauth,)
print(response.status_code)

json_response = response.json()
json_response

나의 bearer Token 정보를 바탕으로 일롤버스크 ID를 넣고 (elonmusk) 결과를 보면!!

 

이렇게 일런모스크의 아이디 번호를 찾아올수 있습니다!!

 

 - b. 일론머스크의 계정 id번호로 트윗 찾아오기!!

 

이제 해당 id 번호로 아래와 같이 조회를하면!!

user_id = json_response['data'][0]['id']
user_tweets_url = "https://api.twitter.com/2/users/{}/tweets".format(user_id)

target_params = {
    "tweet.fields": "created_at",
    "max_results": 100  #  갯수 설정 가능!! chleo 100개 까지
}

response = requests.request("GET", user_tweets_url, auth=bearer_oauth, params=target_params)

url = create_url()
params = get_params()
json_response =  response.json()
json_response

짠!! 잘가져옵니다!!^^


 - c. 익숙한 pandas DF로 만들기! 찾아오기!!

 

판다스로 만들어버리죠!

df = pd.DataFrame(json_response['data'])

 

 

짠!! 이쁘게 나와버립니다!!^^*

 

+ 그리고!! 이어서 더 가져오고싶다면

meta의 next token 정보를 활용하면 됩니다~~

# 다음 페이지의 트윗 요청
target_params = {
    "tweet.fields": "created_at",
    "max_results": 10,  # 다음 10개의 트윗을 요청
    "pagination_token": json_response['meta']['next_token']  # next token 기반으로 그 전꺼가져오기!
}

response = requests.request("GET", user_tweets_url, auth=bearer_oauth, params=target_params)
json_response = response.json()
json_response

ㅁ 참고 : https://github.com/xdevplatform/Twitter-API-v2-sample-code/tree/main

 

 

 

 

 

 

728x90

댓글