Tweepy multiple auth handler

旧街凉风 提交于 2019-12-04 18:50:02

Here is the solution.

The error was indexing the object itself. I had to create a variable as an index:

switch += 1
api.auth_idx = switch

And here is the full code, in case anybody tries to build the same app:

oauth_keys = [
    ["consumer_key_1", "consumer_secret_1", "access_token_1", "access_token_secret_1"], 
    ["consumer_key_2", "consumer_secret_2", "access_token_2", "access_token_secret_2"]
    ]

auths = []
for consumer_key, consumer_secret, access_key, access_secret in oauth_keys:
    auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_key, access_secret)
    auths.append(auth)

# api
api = tweepy.API(auths)
currentCursor = tweepy.Cursor(api.search, q = 'bitcoin', since='2017-02-01', until='2017-02-02', lang='en')
c = currentCursor.items()

switch = 0
api.auth_idx = switch
tweets = []
early_dt_val = datetime.datetime.strptime('2017-01-31 22:34:48', '%Y-%m-%d %H:%M:%S')
later_dt_val = datetime.datetime.strptime('2017-02-01 01:25:30', '%Y-%m-%d %H:%M:%S')
maxId = 0

while True:
    try:
        #for tweet in tweepy.Cursor(api.search, q='bitcoin', since=datetime.date(2017, 1, 31), lang='en').items(3000)
        for tweet in c:
            tweets.append(tweet)
            maxId = tweet.id

        for tweet in reversed(tweets):
            tweetTime = tweet.created_at
            if tweetTime < later_dt_val and tweetTime > early_dt_val:
                print('Date: ' + str(tweet.created_at))
                print('Tweet: ' + tweet.text)

    except tweepy.TweepError as e:
        print e
        print "---------------------------Rate limit exceeded.---------------------------"
        print "switching keys..."
        switch += 1
        if switch > 4:
            print "Limit reached"
            break
        else:
            api.auth_idx = switch           # naechster Key
            currentCursor = tweepy.Cursor(api.search, q='bitcoin', since='2017-02-01', until='2017-02-02', lang='en', max_id=maxId)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!