【Tweepy】Pythonで単語検索フォロー、ファボ、リスト追加自動化強化【2019】

【Tweepy】Pythonで単語検索フォロー、ファボ、リスト追加自動化強化【2019】

今回は、以前の続きで、ループ構造を使ってより多くのユーザーさんをリスト追加する自動化に試みてみました。


最初に読むべきはこっちの記事なのでPython自動化なんじゃらほいという方はこちらの記事をお読みください。

基本的には前でやったことと、フォロー自動化の時にやったループ構造を応用しているだけです。

フォロー自動化についてはこちら

 

ソースコード

また詳しく書くかもしれませんが、とりあえずソースコードだけ載せておきます。

独学なのでおかしなところあったら教えてくださると助かります。

一応実行は出来ましたが、※不審なアクティビティ認定されてしまいました。

リスト追加はAPI制限が厳しいようなので、ループ構造はやめて一日80追加ぐらいで収めた方が良いかもしれません・・・

一応コードは残しておきます。

#coding:utf-8
import config
import tweepy
import time

# Accesss Token Secert
CK = config.CONSUMER_KEY
CS = config.CONSUMER_SECRET
AT = config.ACCESS_TOKEN
ATS = config.ACCESS_TOKEN_SECRET

auth = tweepy.OAuthHandler(CK, CS)
auth.set_access_token(AT, ATS)
api = tweepy.API(auth)

add_count = 0
loop_out = False

for loop_count in range(7):
    print("----------------------------------")
    print(str(loop_count + 1) + "回目のループ開始!")
    print("----------------------------------")
    if loop_count == 0:
        query = "うたわれるもの" # 1ループ目の検索ワード
    elif loop_count == 1:
        query = "うたわれ"
    elif loop_count == 2:
        query = ["ウルゥル","うたわれ"]
    elif loop_count == 3:
        query = ["サラァナ","うたわれ"]
    elif loop_count == 4:
        query = ["ルルティエ","うたわれ"]
    elif loop_count == 5:
        query = ["アクタ","うたわれ"]
    elif loop_count == 6:
        query = ["マロロ","うたわれ"]
    elif loop_count == 7:
        query = ["ミナギ","うたわれ"]

    search_count = 100 # 検索数(上限100)
    search_results = api.search(q=query, count=search_count)

    for result in search_results:
        # リスト追加人数が300人以上になったらループ抜けて処理終了。
        if add_count > 300:
            loop_out = True
            break
        userid = result.user.id # ツイート主のid(数字)
        username = result.user.name # ツイート主の名前
        tweet = result.text # ツイート内容
        tweetid = result.id # ツイートのid(数字)
        print("--------------------------------------------------")
        print("名前:"+username)
        print("ツイート:")
        print(tweet)
        print("--------------------------------------------------")
        try:
            api.create_favorite(tweetid)
            print("上のツイートをふぁぼりましたよ、ご主人様。")
        except:
            print("上のツイートをふぁぼれませんでしたぁ! ご主人様ァ(´;ω;`)")

        try:
            api.add_list_member(user_id=userid, slug="list3", owner_screen_name="nahamot") #listにそのツイートのユーザ名を追加する
            print(username+"をうたわれリストに追加させていただきました。")
            add_count += 1
        except:
            print(username+"をうたわれリストに追加できませんでしたぁ! ご主人様ァ(´;ω;`)")

        try:
            api.create_friendship(userid)
            print(username+"をフォローしました。")
        except:
            print(username+"をフォローできませんでしたぁ! ご主人様ァ(´;ω;`)")

        print("-----------------------------------------")
        print("[" + str(loop_count + 1) + "ループ目] 現状" + str(add_count) + "人をリスト追加しました!")

    print("----------------------------------")
    print(str(loop_count + 1) + "回目のループが終了しました")
    print("----------------------------------")
    # フォロー上限になったらループ抜ける
    if loop_out:
        break
    # アクセス連続しすぎるとやばいかもだからループが終わったら5分待つ(5分待つことで、153APIアクセス/5分 = 459APIアクセス/15分でAPIアクセス上限に引っかからないはず。)
    print("5分待ちます")
    time.sleep(300)

最後になりますが、リスト追加に関しては、

API取得の制限が厳しいっぽいので、

やる場合は自己責任でお願いします!

それでは、また次の記事でお会いしましょう。

 

 タイトルは少し趣が違いますが、内容的に次の記事はこちらです。