Tweepy Search API 停止且没有错误,同时仅回溯前 1 天
Tweepy Search API stops with no errors, while searching back only 1 previous day
我是 Tweepy 的新手,运行通过它的 python 模块安装它。在搜索 hasgtags 几个小时后,我似乎超时了,但没有任何错误消息——它只是继续将推文放入我的数据框中。我知道 Twitter 对免费开发者帐户的 7 天限制,以及通过启用 wait_on_rate_limit=True
尊重 Twitter 数据挖掘限制。我的目标是每天 运行 这个更大的标签,比如 '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 的流媒体工具,因为我没有 server/DB 能力 运行 这个 24/7。是否可以将异常测试添加到此循环中以找出我被踢出的原因?
编辑
同时 运行 宁任务管理器,我注意到我在 3000Mhz 下使用 7.6GB(68.8MB 压缩)和 32GB 总内存。这会是我超时的原因吗?
我通过将 count=20
增加到 api 允许的最大值来“解决”了这个超时问题:count=100
:
See tweepy.search
这让我的推文数量增加了 mined/request 5 倍,而且我在更短的时间内下载了我的日期范围内的整个数据集,所以如果你要大数字!
对于这个确切的问题是什么,我没有可靠的答案,但似乎我的代码可以处理一些例外情况,而 Tweepy 的 API 的 this 部分可能是起点
我是 Tweepy 的新手,运行通过它的 python 模块安装它。在搜索 hasgtags 几个小时后,我似乎超时了,但没有任何错误消息——它只是继续将推文放入我的数据框中。我知道 Twitter 对免费开发者帐户的 7 天限制,以及通过启用 wait_on_rate_limit=True
尊重 Twitter 数据挖掘限制。我的目标是每天 运行 这个更大的标签,比如 '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 的流媒体工具,因为我没有 server/DB 能力 运行 这个 24/7。是否可以将异常测试添加到此循环中以找出我被踢出的原因?
编辑
同时 运行 宁任务管理器,我注意到我在 3000Mhz 下使用 7.6GB(68.8MB 压缩)和 32GB 总内存。这会是我超时的原因吗?
我通过将 count=20
增加到 api 允许的最大值来“解决”了这个超时问题:count=100
:
See tweepy.search
这让我的推文数量增加了 mined/request 5 倍,而且我在更短的时间内下载了我的日期范围内的整个数据集,所以如果你要大数字!
对于这个确切的问题是什么,我没有可靠的答案,但似乎我的代码可以处理一些例外情况,而 Tweepy 的 API 的 this 部分可能是起点