0

我正在用 Python 编写一个简单的 Twitter 机器人,想知道是否有人可以为我回答和解释这个问题。

我可以发推文,但我还没有让机器人转发任何人。我害怕多次发布用户的推文。我计划让我的机器人仅基于 Windows 计划任务运行,因此当脚本(例如)第三次运行时,我如何获取它以便脚本/机器人不会再次转发推文?

澄清我的问题:假设有人在下午 5 点 59 分发推文“#computer”。现在我的 twitter 机器人应该转发任何包含 #computer 的内容。假设当机器人在下午 6:03 运行时,它会找到该推文并转发它。但是,当机器人在下午 6 点 09 分再次运行时,它会再次转发同一条推文。我如何确保它不会转发重复的推文?

我是否应该创建一个单独的文本文件并添加推文的 ID 并在每次机器人运行时通读它们?我无法找到有关此的任何答案,也不知道有效的检查方法。

4

4 回答 4

0

This is how I did it. I grabbed the list of things to retweet and a list of my feed. I cut the lists down to only posts within the past 24 hours. Then for each item in retweetable I check to see if it's in my feed list. If not I post RT @user retweet content.

I also wrote a function to chop the str down to 140 chars (137 + '...')

E.G.

TO_RT = 'a post to post'
MYTWT = ('old post', 'other old post')

if TO_RT not in MYTWT
  Tweet(TO_RT)
于 2014-03-31T17:24:47.427 回答
0

您应该将处理的最新推文的时间戳存储在某处,这样您就不会两次浏览相同的推文,因此不会转发两次推文。

这也应该使推文处理更快(因为您只处理每条推文一次)。

于 2013-04-11T21:52:03.750 回答
0

几个月前我用 python 写了一个 twitter 机器人,这个链接帮助很大。我还使用了这个github 存储库,它虽然在 Ruby 中,但对逻辑流很有帮助。这个 repo 使用与您提到的类似的方法,创建以前转发的本地数据存储以与每条推文进行比较。

于 2013-04-11T22:03:01.483 回答
0

Twitter 的设置使您不能多次转发同一件事。因此,如果您的机器人收到这样的推文,它将被 API 重定向到错误 403 页面。您可以通过将脚本每次运行之间的时间缩短到大约一分钟来测试此策略;这将生成错误 403 链接,因为当前的推文提要保持不变。

于 2015-05-27T16:22:56.720 回答