見出し画像

Python初心者が単語検索からフォロー、ファボ、リスト追加自動化を強化してみた話【2020】

こんにちは。


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

最初に読むべきはこっちの記事なので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取得の制限が厳しいっぽいのでやる場合は自己責任でお願いします!

 それでは今日はこの辺で。

読了いただき、ありがとうございました。

バイバーイ!


このシリーズの次の記事はこちらです! 興味のある方はぜひ!


この記事が気に入ったらサポートをしてみませんか?