2017-11-14 1 views
0

나는 WomensMarch의 트위터 타임 라인에서 모든 싱글 트윗을 찾고 있습니다.특정 사용자의 타임 라인에서 Tweepy를 사용하여 모든 트윗과 리트 윗을 채굴

저는 Tweepy와 Python 3.x를 사용하려고했지만, 3219 개 이상의 트윗을 되돌릴 수 없습니다. 트위터의 특정 사용자가 자신의 계정을 만든 후 다시 트윗하거나 트위터를 만들었다는 것을 알 수 있습니다.

import pandas as pd 
import tweepy 
from tweepy import OAuthHandler 
import time 

consumer_key = "--" 
consumer_secret = "--" 
access_token = "--" 
access_secret = "--" 

authHandler = OAuthHandler(consumer_key, consumer_secret) 
authHandler.set_access_token(access_token, access_secret) 
twitterAPI = tweepy.API(authHandler, wait_on_rate_limit=True, wait_on_rate_limit_notify=True) 

womensMarchTwitter = twitterAPI.get_user('womensmarch') 
minedTwitterDataFrom_womensMarchTwitter = pd.DataFrame(columns=["Tweet Text", "Tweet Created On"]) 

def MineTimelineData(idToMine): 
    cursor = tweepy.Cursor(twitterAPI.user_timeline, id=idToMine) 
    while(tweepy.Cursor(twitterAPI.user_timeline).items() != None): 
     try: 
      for page in cursor.pages(): 
       for tweet in page: 
        yield tweet 
     except tweepy.RateLimitError: 
      print("Rate limit reached! Waiting 15 minutes...") 
      time.sleep(60 * 15) #wait 15 minutes (900 seconds) 

minedData = MineTimelineData(womensMarchTwitter.id) 

numberOfTweetsMined = 0 
for tweet in minedData: 
    print(tweet.text) 
    print("Posted on: ", tweet.created_at) 
    minedTwitterDataFrom_womensMarchTwitter.loc[numberOfTweetsMined, "Tweet Text"] = tweet.text 
    minedTwitterDataFrom_womensMarchTwitter.loc[numberOfTweetsMined, "Tweet Created On"] = tweet.created_at 
    numberOfTweetsMined = numberOfTweetsMined + 1 

minedTwitterDataFrom_womensMarchTwitter.to_csv(r"PATH") 
print(numberOfTweetsMined) 
print("\n \n \n Finished Mining Tweets!") 
+0

큰 의미는 아니지만 전문 용어를 사용하면 '가져 오기'를 시도하는 것처럼 들립니다. '마이닝'은 일반적으로 감정을 표현하는 것과 같은 데이터에서 통찰력을 찾는 것을 말합니다. :) – Chet

+0

@Chet, 아, 나는 그것을 실제로 몰랐다. 정보 주셔서 감사합니다! : D – Rvbt1

답변

1

당신이 한 번에 user_timeline가 3,200 될 것입니다 사용하여 반환 할 수 Twitter API docs 가장 기록에 따르면 :

는 여기에 내가 현재 사용하고 코드입니다. 워드 프로세서

:

이 방법은 사용자의 가장 최근의 트윗 3,200까지 반환 할 수 있습니다. 이 리소스를 요청할 때 include_rtsfalse으로 설정되었는지 여부에 관계없이 사용자가 다른 상태의 기본 리트 윗이이 합계에 포함됩니다.

나는 당신이 그 여분의 19 가지 짹짹을 어떻게 얻었는지 솔직히 알지 못합니다. 그러나 이것은 확실히 스펙의 일부입니다.

+0

user_timeline에 대한 정보를 제공해 주셔서 감사합니다. 사용자로부터 모든 트윗과 리트 윗을 가져 오는 데 사용할 수있는 API 메소드에 대해 알고 있습니까? – Rvbt1

+0

내가 아는 한 당신은 제 3 자로 그렇게 할 수 없다는 것을 알고 있습니다 - 사용자가 모든 트윗을 다운로드 한 다음 서비스에 업로드하게해야합니다. – wpercy

관련 문제