Python 使用tweepy转发最新推文
我一直在玩Python 使用tweepy转发最新推文,python,twitter,tweepy,Python,Twitter,Tweepy,我一直在玩tweepypython模块,创建一个twitter机器人,从我关注的几个特定帐户中转发每条tweet。我已经能够遵循模块文档,并成功地转发了所有帐户的推文。正如你们中的大多数人可能知道的,一些账户不像其他账户那样定期推特,我不想多次转发同一条推特。我无法从文档中获得关于“获取最新tweet”的最终解决方案,因此我想出了一个解决方案,将帐户id作为键值对存储在字典中。在转发之前,我检查id以查看它们是否匹配。如果是,我将跳过推文 这是一个很好的解决方案,还是我忽略了一个更简单的方法,应
tweepy
python模块,创建一个twitter机器人,从我关注的几个特定帐户中转发每条tweet。我已经能够遵循模块文档,并成功地转发了所有帐户的推文。正如你们中的大多数人可能知道的,一些账户不像其他账户那样定期推特,我不想多次转发同一条推特。我无法从文档中获得关于“获取最新tweet”的最终解决方案,因此我想出了一个解决方案,将帐户id作为键值对存储在字典中。在转发之前,我检查id以查看它们是否匹配。如果是,我将跳过推文
这是一个很好的解决方案,还是我忽略了一个更简单的方法,应该重新阅读文档?我有一个运行的代码可以做到这一点,但没有那么简单。在我的例子中,人们可能会从其他人那里转发,另外,稍微改变一下tweet。所以我需要“看看”它是否是同一个主题
我通过解析tweet、删除通用词(a,the,un,…),获取主要词,然后,如您所说,将它们存储在一个变量中来实现这一点。在我的例子中,我选择使用pickle和FIFO系统。所以,当一条推特发过来时,我会对照一个相关词列表检查最相关的词,接受1个词作为偏差,只有他们决定是否转发。事实上,我又发了一次推特,而不是转发。如果你只转发,也许你可以只存储推特id,你会很好。但正如我所说的,请小心,您的以下帐户可能会推送相同的东西,并且将有不同的ID
---先进先出---
是的,我昨天意识到了这一点。我用pickle来储存我的字典。一旦我有了有效的签入,可以跳过两次转发相同的内容,我会调查你指出的问题。putI在我的回复中添加了帮助我解决问题的FIFO代码。
class Fifo:
def __init__(self, max_limit):
self.data = [[], []]
self.max_limit = max_limit
def append(self, value):
self.data[1].append(value)
if self.max_limit > 0:
if len(self.data[0]) + len(self.data[1]) > self.max_limit:
return self.pop()
def pop(self):
if not self.data[0]:
self.data.reverse()
self.data[0].reverse()
return self.data[0].pop()
def __len__(self):
return len(self.data[0]) + len(self.data[1])
def tolist(self):
temp = (self.data[0])[:]
temp.reverse()
return temp + self.data[1]