使用循环自动回复推文
Posted
技术标签:
【中文标题】使用循环自动回复推文【英文标题】:Reply Tweet Automatically Using Loop 【发布时间】:2021-12-17 14:32:34 【问题描述】:我的目标是使用 tweepy 回复某条推文并暂停(time.sleep()) 回复格式是status,最后是i的值。但我的代码不起作用,我不知道为什么。 (注意:它只回复一次,不打印报告)
import tweepy
import random
import datetime
import time
def spam():
for i in range(amount):
send = str(status) + " " + str(i+1)
pause = random.randint(5,12)
auth = tweepy.OAuthHandler("xxxx", "xxxx")
auth.set_access_token("xxxx-xxxx", "xxxx")
api = tweepy.API(auth)
api.update_status(send, in_reply_to_status_id = tweetid , auto_populate_reply_metadata=True)
print("succes, pause =",pause+"s\t",datetime.datetime.now()) # for report
time.sleep(pause)
amount = int(input("amount>> "))
status = input("status>> ")
tweetid = input("id>> ")
spam()
【问题讨论】:
有错误吗? @Harmon758 不,但它没有按计划工作。它只回复了一次 你的意见是什么? 【参考方案1】:据我所知,Twitter 会屏蔽彼此相似的推文。只有一条这样的推文可以发出。即使我尝试改变推文之间的时间,也尝试改变一两个字符,但还是被阻止了。您的代码没有任何问题,它是 Twitter 的防御机制,它已经启动以防止垃圾邮件。另外请注意,如果您尝试发送垃圾邮件,您的 API 访问也可能会被阻止。
另外你不需要每次运行循环时都进行身份验证,你可以只做一次并获取api
对象,你可以在循环中使用它,如下所示
import tweepy
import random
import datetime
import time
def spam():
auth = tweepy.OAuthHandler("xxxx", "xxxx")
auth.set_access_token("xxxx-xxxx", "xxxx")
api = tweepy.API(auth)
for i in range(amount):
send = str(status) + " " + str(i+1)
pause = random.randint(5,12)
api.update_status(send, in_reply_to_status_id = tweetid , auto_populate_reply_metadata=True)
print("succes, pause =",pause+"s\t",datetime.datetime.now()) # for report
time.sleep(pause)
amount = int(input("amount>> "))
status = input("status>> ")
tweetid = input("id>> ")
spam()
【讨论】:
我之前已经运行过代码,但没有使用 Time 和 Datetime 并且它有效。但是当我将它与时间和日期时间结合使用时,它不起作用。以上是关于使用循环自动回复推文的主要内容,如果未能解决你的问题,请参考以下文章