Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用tweepy搜索最新提及的内容,而不是最老的_Python_Twitter_Bots_Tweepy - Fatal编程技术网

Python 用tweepy搜索最新提及的内容,而不是最老的

Python 用tweepy搜索最新提及的内容,而不是最老的,python,twitter,bots,tweepy,Python,Twitter,Bots,Tweepy,今天我写了一个推特机器人,它用文件夹中的随机图像回复任何提到它的人 这里的问题是我是python的新手,我根本不知道如何使它功能化。当我开始运行它时,这个机器人开始回复其他用户提到的所有内容,我正在使用一个朋友给我的旧帐户,这并不是我想要的,即使它工作正常,但不是我想要的 机器人正在回复所有来自乞讨者的提及,在所有这些回复之前它不会停止。机器人现在关闭了,我不想打扰任何人 我怎样才能做到只回复最新提到的内容而不回复第一次提到的内容 代码如下: 进口粗花呢 导入日志记录 从配置导入创建\u api

今天我写了一个推特机器人,它用文件夹中的随机图像回复任何提到它的人

这里的问题是我是python的新手,我根本不知道如何使它功能化。当我开始运行它时,这个机器人开始回复其他用户提到的所有内容,我正在使用一个朋友给我的旧帐户,这并不是我想要的,即使它工作正常,但不是我想要的

机器人正在回复所有来自乞讨者的提及,在所有这些回复之前它不会停止。机器人现在关闭了,我不想打扰任何人

我怎样才能做到只回复最新提到的内容而不回复第一次提到的内容

代码如下:

进口粗花呢 导入日志记录 从配置导入创建\u api 导入时间 导入操作系统 随机输入 从日期时间导入日期时间 logging.basicConfiglevel=logging.INFO logger=logging.getLogger api=创建api imagePath=random.choiceos.listdirimages/ 尽管如此: 对于tweepy.Cursorapi.notices\u timeline.items中的tweet: 尝试: imagePath=random.choiceos.listdirimages/ tweetId=tweet.user.id 用户名=tweet.user.screen\u名称 api.update_为_media'images/'+imagePath@+username+,在_回复_至_status_id=tweet.id中 用“+imagePath”打印“回复”+username+” 除tweepy.TweepError为e外: 理由 除停止迭代外: 打破 时间到了
提前感谢。

我目前没有能力测试这段代码,但应该可以

它不再遍历每个tweet,而是将tweepy.Cursor返回到一个列表中,然后只获取该列表中的最后一项

api=创建api imagePath=random.choiceos.listdirimages/ 尽管如此: tweet\u iterator=tweepy.Cursorapi.indications\u timeline.items 最新推文=列表推文迭代器[-1] 尝试: imagePath=random.choiceos.listdirimages/ tweetId=最新的_tweet.user.id 用户名=最新的\u tweet.user.screen\u名称 api.update_为_media'images/'+imagePath@+username+,在_回复_至_status_id=latest_tweet.id中 用“+imagePath”打印“回复”+username+” 除tweepy.TweepError为e外: 理由 除停止迭代外: 打破 时间到了 您还需要跟踪您上次回复的用户,这样您就不会一次又一次地向同一个人发送垃圾邮件

这不是最有效的方法,但应该很容易理解:

最新用户id=无 尽管如此: 代码的其余部分 尝试: 如果latest_user_id==latest_tweet.user.id: 什么都不要做 其他: latest_user_id=latest_tweet.user.id 代码的其余部分