Tweepy Search API 停止且没有错误,同时仅搜索前 1 天

问题描述

我是 Tweepy 的新手,并通过它的 python 模块运行它。在搜索 hasgtags 几个小时后,我似乎超时了,但没有错误消息 - 它只是继续将推文放入我的数据框中。我知道 Twitter 对免费开发者帐户的 7 天限制,以及通过启用 wait_on_rate_limit=True 来遵守 twitters 数据挖掘限制。我的目标是每天在像“elonmusk”这样的更大的标签上运行这个,并在过去 24 小时内获得推文,但 Tweepy 似乎在推文达到一定数量后超时(最后一次拉取 65k 推文并在“现在”-4 小时后切断值得的推文)。

import tweepy
import pandas as pd

consumer_key = 'XXX'
consumer_secret = 'XXX'
access_token = 'XXX'
access_token_secret = 'XXX'

auth = tweepy.OAuthHandler(consumer_key,consumer_secret)
auth.set_access_token(access_token,access_token_secret)
api = tweepy.API(auth,wait_on_rate_limit=True,wait_on_rate_limit_notify=True)

d = []
start_date = pd.to_datetime('2021/2/14')
for tweet in tweepy.Cursor(api.search,q=HashValue,count=20,lang="en",since=StartDate,tweet_mode='extended',show_user=True).items():
    full_noURL_tweet = [remove_url(tweet.full_text)]
    print('Writing tweets to the moooon...')
    d.append((tweet.created_at,full_noURL_tweet))
print('tweets loaded...')

df = pd.DataFrame(d,columns=('date','full_tweet'))

我不想使用 Tweepy 的流媒体工具,因为我没有服务器/数据库功能来运行这个 24/7。是否有异常测试可以添加到此循环中以找出我被踢出的原因?

编辑

同时运行任务管理器时,我注意到我使用的是 7.6GB(68.8MB 压缩)和 32GB 总内存,频率为 3000Mhz。这会是我超时的原因吗?

解决方法

我通过将 count=20 增加到 api 允许的最大值来“解决”这个超时问题:count=100See tweepy.search

这使我能够将挖掘/请求的推文数量增加 5 倍,并且我在更短的时间内下载了我的日期范围内的整个数据集,因此如果您想要大数字,请确保最大化您的计数!

对于这个确切的问题是什么,我没有可靠的答案,但似乎我的代码可以做一些例外,而 Tweepy API 的 this 部分可能是开始的地方>

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...