使用 tweepy 随机抽样推文
Random sampling tweets with tweepy
我正在尝试分析带有#contentmarketing 标签的推文。我首先尝试使用 tweepy 抓取 20,000 条推文,但 运行 进入了速率限制。所以我想取一个 运行dom 样本(或几个 运行dom 样本)。
我不太熟悉通过 API 调用进行的 运行dom 采样。如果我有一个已经包含数据的数组,我会从该数组中获取 运行dom 索引而不进行替换。但是,我不认为我可以在没有速率限制的情况下首先创建该数组。
谁能告诉我如何访问 运行dom 推文(或来自 API 的 运行dom 数据)?
作为参考,这是让我陷入速率限制炼狱的代码:
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)
我听说过获取随机推文。但是你可以获得“永远”的推文,而不是所有推文,所以这是完全一样的。
通过 public 搜索 API,您可以在 15 分钟内完成 450 个请求(应用程序授权)。所以你可以每 2 秒请求 100 条推文。这永远不会结束。
然后将“计数”参数更改为 100,并添加一个 time.sleep(2) :
import 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
这应该会阻止速率限制生效,只需对您的代码进行以下更改:
api = tweepy.API(auth, wait_on_rate_limit=True)
我正在尝试分析带有#contentmarketing 标签的推文。我首先尝试使用 tweepy 抓取 20,000 条推文,但 运行 进入了速率限制。所以我想取一个 运行dom 样本(或几个 运行dom 样本)。
我不太熟悉通过 API 调用进行的 运行dom 采样。如果我有一个已经包含数据的数组,我会从该数组中获取 运行dom 索引而不进行替换。但是,我不认为我可以在没有速率限制的情况下首先创建该数组。
谁能告诉我如何访问 运行dom 推文(或来自 API 的 运行dom 数据)?
作为参考,这是让我陷入速率限制炼狱的代码:
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)
我听说过获取随机推文。但是你可以获得“永远”的推文,而不是所有推文,所以这是完全一样的。
通过 public 搜索 API,您可以在 15 分钟内完成 450 个请求(应用程序授权)。所以你可以每 2 秒请求 100 条推文。这永远不会结束。
然后将“计数”参数更改为 100,并添加一个 time.sleep(2) :
import 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
这应该会阻止速率限制生效,只需对您的代码进行以下更改:
api = tweepy.API(auth, wait_on_rate_limit=True)