Tweepy - 跳过以下私人帐户

时间:2021-04-21 08:59:44

标签: python twitter bots tweepy

我有一个运行良好的 Twitter 机器人。但是,我在关注拥有私人 Twitter 帐户的用户时遇到了问题。

机器人会发送一个关注请求,然后即使已经发送了一个请求,也会继续发送关注请求。

是否可以跳过关注私人帐户?

代码如下:

#!/usr/bin/env python3.8
#followback.py

import tweepy
import logging
from config import create_api
import time

def get_friends():
    # gets a list of your followers and following
    followers = api.followers_ids(screen_name)
    following = api.friends_ids(screen_name)

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger()

def follow_followers(api):
    logger.info("Retrieving and following followers...")
    for follower in tweepy.Cursor(api.followers).items():
        if not follower.following:
            try:
                logger.info("Now following "+ (follower.screen_name))
                follower.follow()
            except tweepy.TweepError as error:
                if error.api_code == 160:
                    logger.info("Already sent a follow request to " + (follower.screen_name) + ". Attempting to skip.")

def main():
    api = create_api()
    while True:
        follow_followers(api)
        logger.info("Waiting...")
        time.sleep(120)

if __name__ == "__main__":
    main()

我现在添加了一些代码:

if error.api_code == 160:
    logger.info("Already sent a follow request to " + (follower.screen_name) + ". 

它捕获了错误并在日志中看起来更整洁,但它正在填充日志:

INFO:root:Retrieving and following followers...
INFO:root:Now following "user a"
INFO:root:Already sent a follow request to "user a". Attempting to skip.
INFO:root:Now following "user b"
INFO:root:Already sent a follow request to "user b". Attempting to skip.
INFO:root:Waiting...
INFO:root:Retrieving and following followers...
INFO:root:Now following "user a"
INFO:root:Already sent a follow request to "user a". Attempting to skip.
INFO:root:Now following "user b"
INFO:root:Already sent a follow request to "user b". Attempting to skip.
INFO:root:Waiting...

本示例中的用户 a 和用户 b 都是私人帐户。

如果您需要更多信息,请告诉我,谢谢。

1 个答案:

答案 0 :(得分:0)

您可以检查每个 User objectprotected 属性,例如if not follower.protected: