【Python】Tweepyで相互フォローの確認&フォロバとリムーブ

前回の記事:【Python】TwitterのAPIを簡単操作できる「Tweepy」の使い方

今日は前回紹介した「Tweepy」というTwitterのAPIが簡単に触れるライブラリを使用して、自分のアカウントのFF管理をしていきたいと思います。

要はAPIを使って相互フォローしていないユーザーを検索し、フォロワー数に応じてリムるだけです。

Tweepyで相互フォロー管理

コードはgithubにあげているので、そこから引っ張ってきます。

import tweepy
api_dict = {
            'my_account_id':['api_pub',
                               'api_sec',
                               'access_token',
                               'access_token_secret'
                             ]
           }

# フォローしていなくても外さないアカウントのリスト(リストの中身は例)
unrequited_list = {
                   'my_account_id':['MSkieller',
                                    'BitcoinSVinfo',
                                    '_unwriter',
                                    'excalibur0922',
                                    'money_button'
                                    ]
                  }

for k, v in api_dict.items():
    consumer_key = v[0]
    consumer_secret = v[1]
    access_token = v[2]
    access_secret = v[3]

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
api = tweepy.API(auth)

#自分のuserid
    userid = k
try:
    #自分のアカウントのフォロワーをすべて取得する
    followers_id = api.followers_ids(userid)

    #自分のアカウントのフォローをすべて取得する
    following_id = api.friends_ids(userid)

    #フォローされていなくてもOKなアカウントの情報を上の辞書から取得
    unrequited = unrequited_list[k]

    #辞書に登録されているユーザーを1人ずつフォロワーリストに追加
    for i in unrequited:
        try:
            sp_id = api.get_user(i)._json['id']
            followers_id.append(sp_id)
        except Exception as e:
            print(i, e.args)

    # API制限などのカウント用変数を定義
    api_limit = 0
    unfollow_user = 0
    follow_user = 0
    
    # フォローしているのにフォロワーにいないユーザーのフォローを解除する
    for following in following_id:
        if following not in followers_id and api_limit < 40:
            userfollowers = api.get_user(following).followers_count

            # フォロワー数が10000人以下で自分をフォローしていないユーザーを除外する
            if userfollowers < 10000:
                username = api.get_user(following).name
                print("リムーブするユーザー名", username)
                print("フォロワー数", userfollowers)

                # フォローを外す
                api.destroy_friendship(following)
                api_limit += 1
                unfollow_user += 1

    # フォローを返していないユーザーにフォローを返す
    for follower in followers_id:
            if follower not in following_id and api_limit < 40:
                try:
                    username = api.get_user(follower).name
                    print("フォローするユーザー名", username)
                    api.create_friendship(follower)
                    api_limit += 1
                    follow_user += 1

                except Exception as e:
                    e_msg = e.args[0][0]['code']
                    # api制限に引っかかった場合(エラーコード161)はループ終了
                    if e_msg == 161:
                        break
                    # それ以外の場合はエラーメッセージを表示
                    else:
                        print(e.args)

    print(f'リムったユーザーは{unfollow_user}人です')
    print(f'フォローしたユーザーは{follow_user}人です')

except Exception as e:
    print(f'{k}のAPI操作でエラーが発生しました')
    print(e.args)

参照:https://github.com/beginerSE/twitter_follow_follower_confirm/blob/master/twitter_ff_confirm.py

if文にapi_limit < 40という条件式を加えているのは一度のアクセスで100人くらいリムーブとフォローをするとエラーになるので、付け加えています。

ガバガバなので、よくわからない部分があればツイッターの方で質問していただけると幸いです。

終わり

こんな性格の悪いスクリプトを書いておいていうのもなんですが、フォローしてるとかしてないとか考えずに、爽やかな気分でSNSをやりたいものですね。

プログラミングの独学はとても難しい


プログラミングは小学校の義務教育にも導入され始めており、これから社会人として生きていく上でプログラミングはもはや出来て当たり前、出来なれば論外というエクセルレベルの必須スキルになりつつあります。そしてそういう話を聞いて参考書なりを購入して独学でプログラミング勉強しようと思っている人も少なくないでしょう。しかしプログラミングを独学で勉強し始めようと思うものの



・「分からない箇所で詰まって挫折してしまった」

・「勉強する時間が足りない」

・「ネットの記事だと情報が断片的でよくわからない」

・「コードのエラーの原因が分からない」



という壁にぶち当たって、プログラミングの勉強を止めてしまう方が少なくありません。独学でプログラミングを勉強してる時間のほとんどはつまづいている時間です。実際僕も最初のころ独学でプログラミングを勉強していた頃はエラーの原因が分からず丸1日を不意にしてしまった・・・そんな苦い経験がありました。それで僕は一度はプログラミングの学習を諦めてしまいましたが、就活で現実を知る中で



「プログラミングを勉強して、いずれフリーランスとして自由な生き方がしたい」

「エンジニアとして若いうちから高収入を得たい」



という強い気持ちから一念発起して「侍エンジニアのwebサービスコース」に申し込み、プロのエンジニアの方に対面でマンツーマンでPythonによるWebサービス作り方とWeb技術の基本を教えてもらい、ようやくプログラミングが理解でき、今ではエンジニアとしてそこそこの暮らしができるようになりました。





侍エンジニアでは、とりあえずプログラミングやインターネットの基本を知っておきたい人から、HTML・cssなどでWebサイトやWebアプリを作ってみたい人やPythonを勉強してデータサイエンティストやAIエンジニアになりたい人まで幅広いニーズに応えた様々なコースが用意されています。



IT業界と言ってもエンジニアの仕事はプログラミング言語次第でサーバーから機械学習・ディープラーニングまで多種多様ですし、侍エンジニアの無料レッスン(カウンセリング)を受けてみて、自分のやりたいITの仕事は何なのか?を見つけるのがエンジニアへの第一歩になります。ちなみに今侍エンジニアの無料レッスンを受けると1000円分のAmazonギフト券がもらえるので、試しに受けてみるだけもお得です。


自分は半端に独学やオンラインスクールで勉強して金と時間を無駄にするくらいなら、リアルのプログラミングスクールに通ってしっかりプログラミングを勉強した方がいいと思います。ちなみに今、侍エンジニアに申し込むと、25歳以下の学生の方であれば、受講料が20%OFFになるので超お得です。


そして、プログラミングは大勢で授業を受けたり漫然とオンライン学習をするよりも自分が分からない箇所をピンポイントでプロの講師に直接質問して、ちゃんと納得するというスタイルの方がお金は確かに少し掛かりますが、独学で学ぶよりも絶対にモノになります。


シェアする

  • このエントリーをはてなブックマークに追加

フォローする

   侍エンジニア塾       
侍エンジニアの無料体験レッスンを予約する -->