gpt4 book ai didi

python - 使用 Tweepy 的 Twitter 机器人 - Python

转载 作者:太空宇宙 更新时间:2023-11-03 21:47:57 25 4
gpt4 key购买 nike

我一直在开发一个 Twitter 机器人,它会用“嗨 ___,我是爸爸!”回复消息中带有“im”的人。

我以前可以使用它,但后来我的计算机死机并丢失了所有文件。

我几年前编写了最初的机器人,并且已经有一段时间没有看过 Tweepy 了。

我很确定我已经 100% 弄清楚了 - 并且没有弹出任何错误,但是机器人无法工作,我不知道为什么。

我可以正常登录,但实际回复部分有问题。

有人可以帮我吗?

import tweepy as tt
import time


#login credentials twitter account
consumer_key = '-NOT GOING TO PUT THE ACTUAL KEY IN-'
consumer_secret = '-NOT GOING TO PUT THE ACTUAL KEY IN-'
access_token = '-NOT GOING TO PUT THE ACTUAL KEY IN-'
access_secret = '-NOT GOING TO PUT THE ACTUAL KEY IN-'

#login
auth = tt.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
api = tt.API(auth)
search_results = api.search("r'\bi\'?m\s+(.*)',re.IGNORECASE,text", count=100)

user = api.me()
print(user.name)


#reply
for tweet in search_results:

# answer to the hashtag tweet
if len(reply) > 0:
c=message.content
c=c.replace("im ","")
answer="@"+user+" Hi " + c + ", I'm Dad!"
print ("Reply:",answer)
# tweet and pause not to stress twitter
twitter.update_status(status=answer,in_reply_to_status_id=id)
time.sleep(300) #every 5 minutes

最佳答案

如果您希望继续使用 r(egular)e(xpression) 模块,您可能需要 import re 但据我所知,也基于 stackoverflow 上其他人的答案,Twitter 不支持使用 RE 搜索推文(目前)。我可以证明这一点,因为我每周都会收集推文,但研究失败了。

尝试使用api.update_status(...)而不是twitter.update_status(...)。请注意 update_status()api 对象的一个​​方法。另外,请注意您的 id 未实例化或没有初始值。

这是我的 Twitter 收集脚本中的一个片段,用于进一步了解上下文,在我的实现中,我使用 csvwriter 将多行推文保存在 csv 中。

for tweet in tweepy.Cursor(api.search, q='twitter').items():  
csvWriter.writerow([tweet.text.encode('utf8'),
tweet.user.screen_name, tweet.created_at,
tweet.retweet_count, tweet.favorite_count,
tweet.user.location.encode('utf8')], tweet.user.id)

像您一样,几年前我也尝试过使用 RE(最近),我可以确认 Twitter 搜索/查询尚不支持 RE。 (我知道很难过:/)。但这就是数据/推文预处理的用武之地。

我想指出的另一点是,您无法检索一条推文获得的回复总数(我假设您像我一样使用标准 api(不是高级或企业).. 请参阅此link了解有关reply_count推文功能的上下文。

对于您的情况,我建议使用以下代码来“搜索”您想要的推文,我使用 tweepy 的光标进行 api.search,然后是 q(uery)。查询值基本上就像 Twitter 的“搜索”栏。虽然我的解决方案实际上并不是您的解决方案,但如果您愿意,可以从我的代码中获取。

import tweepy as tt
import time
import sys
reload(sys)
sys.setdefaultencoding('utf8')


#login credentials twitter account
consumer_key = '-NOT GOING TO PUT THE ACTUAL KEY IN-'
consumer_secret = '-NOT GOING TO PUT THE ACTUAL KEY IN-'
access_token = '-NOT GOING TO PUT THE ACTUAL KEY IN-'
access_secret = '-NOT GOING TO PUT THE ACTUAL KEY IN-'

#login
auth = tt.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
api = tt.API(auth)
search_query = "hi I'm Dad"
user = api.me()
print(user.name)

max_tweets = 100

for tweet in tweepy.Cursor(api.search, q=search_query).items(max_tweets):
c=tweet.text.encode('utf8')
c=c.replace("im ","")
answer="@"+tweet.user.screen_name+" Hi " + c + ", I'm Dad!"
print ("Reply:",answer)
api.update_status(status=answer,in_reply_to_status_id=tweet.id)
time.sleep(300) #every 5 minutes

/ogs

关于python - 使用 Tweepy 的 Twitter 机器人 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52339729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com