0

我有一个看似简单的问题,我正在努力寻找解决方案。我有一个大约 3,000 个推文 ID 的列表,我希望获得转发次数、喜欢的次数和用户的关注者数量。

为此,我编写了以下代码:

def chunks(l, n):
    # For item i in a range that is a length of l,
    for i in range(0, len(l), n):
        # Create an index range for l of n items:
        yield l[i:i+n]

tweets = []
id = list(chunks(listOfTwitterIDs, 100))
for each in id:
    tweets.append(api.statuses_lookup(each, map=true))

但是,这将超过 Twitter 的速率限制。当我达到速率限制时,如何引入 15 分钟的等待时间?

4

2 回答 2

3

tweepy API有一个默认wait_on_rate_limit设置为的参数。False

tweepy docs Code Snippets中提供了另一个使用游标处理速率限制的示例。

于 2018-12-16T21:09:31.007 回答
2
def chunks(l, n):
    # For item i in a range that is a length of l,
    for i in range(0, len(l), n):
        # Create an index range for l of n items:
        yield l[i:i+n]

tweets = []
id = list(chunks(listOfTwitterIDs, 100))
for each in id:
    # try to get get # of retweets
    try:
        tweets.append(api.statuses_lookup(each, map=true))
    # If it fails, wait 15 mins and 1 sec (just to be safe) and try again
    except: 
        sleep(901)
        tweets.append(api.statuses_lookup(each, map=true))
于 2018-12-16T21:12:46.097 回答