gpt4 book ai didi

python - 使用 Tweepy 避免速率限制从 API 获取最后的 Twitter 提及

转载 作者:太空狗 更新时间:2023-10-30 00:12:38 30 4
gpt4 key购买 nike

我曾经有一些运行良好的 python,可以在 Tweepy 流监听器上自动回复,但由于 8 月份 Twitter API 发生变化,它不再有效。

我正在重新构建它,每 10 秒获取一次我最近提到的内容(理想情况下它会更少,因为我想做近乎即时的回复),并检查它是否在最后十秒内......如果然后脚本假定这是一条新推文并回复。

from tweepy import OAuthHandler
from tweepy import API
from datetime import datetime, time, timedelta

consumer_key = ''
consumer_secret = ''
access_token = ''
access_token_secret = ''
account_screen_name = ''
account_user_id = '897579556009332736'

auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
twitterApi = API(auth)

mentions = twitterApi.mentions_timeline(count=1)
now = datetime.now()

for mention in mentions:
if now < (mention.created_at + timedelta(hours=1) + timedelta(seconds=10)):
print "there's a mention in the last 10 seconds"
# do magic reply stuff here!
else:
print "do nothing, no recent tweets/the last mention was more than 10 seconds ago so it isn't new"

这可以每 12 秒循环一次;但是再少一点就会达到速率限制(即上面的这种方法在 10 秒时最终会达到速率限制)......所以,有没有更好的方法来检索最近提到的内容以便根据提到?我觉得我可能以一种非常低效的方式来做这件事(例如,这个方法实际上得到了最后 20 次提及!!)并且 API 可能有一个更好的方法,我可以在不达到速率限制的情况下更频繁地做?

最佳答案

回答

使用 tweepy:否

使用其他方法:是的,但不是免费的

解释

首先要了解的是,Twitter 确实允许通过其 API 实时流式传输推文。接下来是可以使用他们的 API 来跟踪包含一些 @TrackedUsername 的推文,以实时跟踪提及。然而,虽然第一个功能可以通过许多库和包装器 API 免费使用,但第二个功能却不是。这是他们锁定在每月订阅他们的高级或企业 api 之后的功能之一。

我所知道的是,人们不会使用分布式的 tweepy 来利用这些服务。也许外面有人修改了它以供个人使用以兼容这些功能,但如果是的话我还没有找到它。人们使用的是 Python Twitter API .

猜测

由于我自己从未使用过他们的高级服务,因此值得阅读我接下来要说的内容,但据我了解,他们的付费使用服务的身份验证协议(protocol)略有不同,这就是导致问题的原因与 tweepy。

回到事实

基本上这意味着搜索 @TrackedUsername 将不会返回任何内容,搜索 TrackedUsername 将不会返回包含 @TrackedUsername 的推文> 或 #TrackedUsername(除非它也只包含 TrackedUsername,但您跟踪的是文本而不是提及)。主要是因为 Twitter 想通过这项服务获得报酬。

如果您确实选择为此服务付费,那么最常用的 python 实现是 Python Twitter API正如刚才提到的。这些功能将允许您以更高的速率限制实时跟踪包含提及的推文,并支持更远地搜索过去的推文。

关于python - 使用 Tweepy 避免速率限制从 API 获取最后的 Twitter 提及,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53031465/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com