트위터 API에 대한 반복 요청 샘플
왜 귀속 요청이 필요합니까
무료로 사용할 수 있는 범위라면 트위터 API는 30일 또는fullarchive의sandbox로 바뀌며, 한 요청에 대해 트위터 100개(user timeline 200)만 받을 수 있다.따라서 반환을 요청하는 값은next 영패를 가지고 있습니다.여기에 한 번 더 요청하면 종전 후속으로 100건을 받을 수 있다
어떻게 실현합니까
csv에 저장된 프로젝트를 무시했습니다
4에서 귀속 호출을 하는 함수 중 매개 변수에next 영패가 있으면 요청을 취소하는 것으로 정의합니다.
반복 함수 설정
def searchWordsRecurrent(from_date, to_date,res = None):
url = "https://api.twitter.com/1.1/tweets/search/fullarchive/[Twitter AppのENV_NAME].json"
keyword = "任意のキーワード"
print('----------------------------------------------------')
params = {'query' : keyword, 'maxResults' : 100,'fromDate':from_date,'toDate':to_date}
#レスポンスが引数で与えられていたら
if res is not None:
params['next'] = res['next']
result = twitter.get(url, params = params)
#CSVのヘッダーを定義
header = ['id','User Name','User ID','Follows','Followers','User Location','content','time']
search_timeline = {}
if result.status_code == 200:
with open('sample.csv', 'w') as f:
search_timeline = json.loads(result.text)
writer = csv.writer(f)
writer.writerow(header)
for tweet in search_timeline['results']:
date = datetime.strptime(tweet['created_at'],'%a %b %d %H:%M:%S %z %Y')
tmp = []
tmp.append(tweet['id'])
tmp.append(tweet['user']['name'])
tmp.append(tweet['user']['screen_name'])
tmp.append(tweet['retweet_count'])
tmp.append(tweet['favorite_count'])
tmp.append(tweet['user']['location'])
tmp.append(tweet['text'])
tmp.append(f"{date.year}-{date.month}-{date.day} {date.hour}:{date.minute}:{date.second}")
writer.writerow(tmp)
tmp = []
print(len(search_timeline['results']))
else:
print("ERROR: %d" % req.status_code)
if 'next' in search_timeline:
searchWordsRecurrent(from_date, to_date,search_timeline)
return;
해설
Premium search full-archive API를 사용하여 특정 키워드를 포함하는 트위터 ID, 트위터 메인(ID, 팔로워, 팔로워수, 위치), 트위터 글, 트위터 시간을 가져옵니다.
각 요청은 몇 번에서 몇 번까지의 CSV 형식으로 저장됩니다.
트위터 API는 maxResults에서 연결이 끊기지 않으면 NEXT 토큰에 답장을 하고 있다면 NEXT 토큰을 덧붙여 뒤에서 찾을 수 있다.이하 인용
공식 설명
Each Tweet data request contains a 'maxResults' parameter (range 10-500, with a default of 100. Sandbox environments have a maximum of 100) that specifies the maximum number of Tweets to return in the response. When the amount of data exceeds the 'maxResults' setting (and it usually will), the response will include a 'next' token and pagination will be required to receive all the data associated with your query (see the HERE section for more information).
Twitter API에서 반환된 객체
Reference
이 문제에 관하여(트위터 API에 대한 반복 요청 샘플), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/yassh_i/articles/bf1fe687911653텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)