tweepy随机抽样微博

2024-03-29 09:24:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图分析标签为“内容营销”的推特。我第一次尝试用tweepy抓取20000条tweets,但是遇到了速率限制。所以我想取一个随机样本(或几个随机样本)。在

我不太熟悉通过API调用进行随机采样。如果我有一个已经包含数据的数组,我将从该数组中获取随机索引而不进行替换。但是,我不认为在没有速率限制的情况下,我不能首先创建这个数组。在

有谁能告诉我如何访问随机tweets(或者从API获取随机数据)吗?在

作为参考,下面是让我陷入利率限制炼狱的代码:

import tweepy
from tweepy import OAuthHandler

consumerKey = 'my-key'
consumerSecret = 'my-key'
accessToken = 'my-key'
accessSecret = 'my-key'

auth = OAuthHandler(consumerKey, consumerSecret)
auth.set_access_token(accessToken, accessSecret)

api = tweepy.API(auth)

tweets = []

for tweet in tweepy.Cursor(api.search, q='#contentmarketing', count=20000, 
    lang='en', since='2017-06-20').items():
        tweets.append(tweet)

with open('content-tweets.json', 'w') as f:
    json.dump(tweets, f, sort_keys=True, indent=4)

Tags: 数据keyimportauthapi速率my数组
2条回答

这将阻止速率限制的影响,只需对代码进行以下更改:

api = tweepy.API(auth, wait_on_rate_limit=True)

我听说过有人随便发推特。但是你可以得到“永远”的微博,而不是所有的,所以这是完全一样的。在

使用公共搜索API,您可以在15分钟内完成450个请求(app auth)。所以你可以要求每2秒发100条微博。这是永无止境的。在

然后将“count”参数更改为100,并添加一个时间。睡觉(2) 公司名称:

impor time 

for tweet in tweepy.Cursor(api.search, q='#contentmarketing', count=100, lang='en', since='2017-06-20').items():
    tweets.append(tweet)
    time.sleep(2)

参考号:https://developer.twitter.com/en/docs/tweets/search/api-reference/get-search-tweets.html

相关问题 更多 >