如何在tweepy上获取最新更新状态

时间:2015-02-23 02:11:12

标签: python tweepy

我正在尝试编写一个机器人,有时似乎它创建了 - 有时候 - 重复的消息。

我收到此错误

{  
u'message': u'Status is a duplicate.', u'code': 187  
}  

我需要验证上次更新的状态是否与我要编写的消息类似。有没有办法提取最后一次更新?我正在检查,但无法找到解决方案,是否有任何pythonic tweepy guru周围提供一些提示?

1 个答案:

答案 0 :(得分:0)

这应该很简单,首先,您需要在时间轴上提取最新的推文,并确保它不是 RT ,用于获取时间轴,您可以使用:

api.user_timeline()

一次从用户时间轴返回20条最新帖子,实际上您可以将名为page默认值1 )的参数传递为1,2,3,4。 ..如果你想获取更多的帖子。因此,我们会从时间线中获取帖子,直到我们到达不是RT的帖子,获取所需的帖子,我们会检查它是否与您当前的帖子匹配,所以让我们说你当前的帖子是:

new_post = "It's mourning Monday, mourn over the fun of Sunday."
def check_last_post(new_post):
    page_num = 1
    while True:
        timeline = api.user_timeline(page = page_num)
        for post in timeline:
            post = (post.text).encode('utf-8')
            if (not (post.startswith("RT"))):
                if not post == new_post:
                    print "Yes, I can update the status."
                    return True
                else:
                    print "Sorry the last post was the same!"
                    return False
        page_num+=1

所以这是一个函数,如果最后一个帖子与False相同则返回一个布尔值new_post,否则返回True,它将继续搜索用户的时间线,直到找到一个帖子,但是如果您定期更新帖子,您将获得第1页本身的最新帖子,但如果您正在进行大量转发,那么它将搜索更多帖子。