Python 脚本,用于转发特定推文的推特机器人
Python script, twitter bot for retweeting specific tweets
我制作了一个用于转推、关注和取消关注的 Twitter 机器人(当达到最大值时),但是当我认为我的机器人可以完全运行时,Twitter 阻止了我。那是因为如果我不想检查我的机器人是否已经转推了一条推文,但我有一个 try/except 块。所以我打了很多 api 转推电话...我想知道如何检查我是否已经转推了这条推文?
我想查找所有转发推文的用户,如果我的用户名在其中,则传递给下一条推文,但这不是很有效。我可以分享我的代码,并随时要求任何澄清。
谢谢,
凯皮奥
PS:我正在使用 tweepy 与 API 进行交互!
更新,这是我的代码的一部分,只是检查转推的部分:
loginToTwitter()
query = 'a string'
tweet_cursor= tweepy.Cursor(api.search, query, result_type="recent").items()
print("Searching")
for tweet in tweet_cursor:
tweetText = tweet.text.lower()
if "rt" in tweetText:
if tweet.retweeted == True: #It return me each time a false boolean but then I get the api.code 327 from twitter
print("already retweeted")
continue
try:
api.retweet(tweet.id)
print('Retweedted')
time.sleep(2)
except tweepy.TweepError as e:
if e.api_code == 327:
print("Tried but tweet already Retweeted" )
print(e)
time.sleep(0.5)
continue
我们在这里谈论多少条推文?您可以使用 sqlite 数据库来存储您已转发的推文的 ID。如果推文太多,您可以清除 10 天前转发的推文 ID 数据库,假设您在 10 天后找不到相同的推文?
您可以通过跟踪推文的 ID 来检查您是否已经转发了特定的推文。在您转推之前,只需对照您的 ID 列表(或数据库 table)检查推文的 ID。如果您转发的推文也是对另一条推文的转发,您可以通过查看 retweet_status
字段来检查该推文的 ID。
我认为您不会因多次转发同一条推文而被屏蔽。一般来说,Twitter 不会让你在 24 小时内多次发布同一条推文。 Twitter 将 return 错误代码 187 代替。 (Twitter's error codes.) 如果你发推太频繁,你可能已经被屏蔽了。 Twitter 没有指定状态更新的速率限制。如果您确实超过了他们的内部速率限制,您将收到 403 HTTP 状态代码,然后由您决定是否停止更新,直到您不再收到 403 代码。
我制作了一个用于转推、关注和取消关注的 Twitter 机器人(当达到最大值时),但是当我认为我的机器人可以完全运行时,Twitter 阻止了我。那是因为如果我不想检查我的机器人是否已经转推了一条推文,但我有一个 try/except 块。所以我打了很多 api 转推电话...我想知道如何检查我是否已经转推了这条推文? 我想查找所有转发推文的用户,如果我的用户名在其中,则传递给下一条推文,但这不是很有效。我可以分享我的代码,并随时要求任何澄清。 谢谢, 凯皮奥 PS:我正在使用 tweepy 与 API 进行交互!
更新,这是我的代码的一部分,只是检查转推的部分:
loginToTwitter()
query = 'a string'
tweet_cursor= tweepy.Cursor(api.search, query, result_type="recent").items()
print("Searching")
for tweet in tweet_cursor:
tweetText = tweet.text.lower()
if "rt" in tweetText:
if tweet.retweeted == True: #It return me each time a false boolean but then I get the api.code 327 from twitter
print("already retweeted")
continue
try:
api.retweet(tweet.id)
print('Retweedted')
time.sleep(2)
except tweepy.TweepError as e:
if e.api_code == 327:
print("Tried but tweet already Retweeted" )
print(e)
time.sleep(0.5)
continue
我们在这里谈论多少条推文?您可以使用 sqlite 数据库来存储您已转发的推文的 ID。如果推文太多,您可以清除 10 天前转发的推文 ID 数据库,假设您在 10 天后找不到相同的推文?
您可以通过跟踪推文的 ID 来检查您是否已经转发了特定的推文。在您转推之前,只需对照您的 ID 列表(或数据库 table)检查推文的 ID。如果您转发的推文也是对另一条推文的转发,您可以通过查看 retweet_status
字段来检查该推文的 ID。
我认为您不会因多次转发同一条推文而被屏蔽。一般来说,Twitter 不会让你在 24 小时内多次发布同一条推文。 Twitter 将 return 错误代码 187 代替。 (Twitter's error codes.) 如果你发推太频繁,你可能已经被屏蔽了。 Twitter 没有指定状态更新的速率限制。如果您确实超过了他们的内部速率限制,您将收到 403 HTTP 状态代码,然后由您决定是否停止更新,直到您不再收到 403 代码。