我正在用Python编写一个简单的Twitter机器人,想知道是否有人可以回答并解释这个问题。
我可以发推文,但我还没有让机器人转发任何人。我害怕在tweet上重复发送用户的推文。我计划让我的机器人基于Windows计划的任务运行,那么当脚本第三次运行(例如)时,我如何获得它,这样脚本/机器人就不会再次转发tweet?
为了澄清我的问题:假设有人在下午5:59发了一条tweeted "#computer“。现在,我的twitter机器人应该可以转发任何包含#computer的内容。假设当机器人在下午6:03运行时,它会找到这条推文并转发它。但当机器人在下午6点09分再次运行时,它会再次转发同样的推文。我如何确保它不会转发重复的内容?
我是否应该创建一个单独的文本文件,添加tweet的ID,并在每次机器人运行时读取它们?我还没有找到任何关于这个问题的答案,也不知道一种有效的检查方法。
发布于 2013-04-12 05:52:04
你应该在某个地方存储最近处理的tweet的时间戳,这样你就不会经历两次相同的tweet,因此不会重复tweet两次。
这也会让tweet处理得更快(因为每个tweet只处理一次)。
发布于 2013-04-12 06:03:01
几个月前,我用python写了一个twitter机器人,这个link帮了我很多忙。我也使用了这个github repo,虽然它是Ruby语言,但对逻辑流很有帮助。此repo使用与您提到的方法类似的方法,创建以前转发的本地数据存储,以与每个tweet进行比较。
发布于 2014-04-01 01:24:47
我就是这么做的。我抓起了要转发的内容列表和我的订阅列表。在过去的24小时内,我将列表减少到只发布帖子。然后,对于retweetable中的每一项,我都会检查它是否在我的提要列表中。如果没有,我会发布RT @user转发内容。
我还写了一个函数来将字符串减少到140个字符(137 + '...')
例如。
TO_RT = 'a post to post'
MYTWT = ('old post', 'other old post')
if TO_RT not in MYTWT
Tweet(TO_RT)https://stackoverflow.com/questions/15958980
复制相似问题