Twitterでいろんな情報を集めたいので、自動フォローとリストインをpython+tweepyコードをパクってみた
こういうことをTwitterでやるとアカウントBANになるのかも知れませんが、TLからいろんな情報を集めたいのでTweetを検索してリストにいれるBOTを作ってみました。
1.自動リストイン構想
興味のある話はTwitterにかなり流れて居るのですが、せっかくの情報がTLに埋もれて見逃してしまうことがあるので、そのカテゴリーのTweetをじっくり見させてもらいたいのが目的です。
フォローせずにリストだけ入れると相手方に気を悪くされそうな気がするのでフォローとリストインにしました。
勝手にフォローしても許してくれそうな人、ハッシュタグで検索しても良いよオーラの出てる人主体にする。
できるだけ怪しいアカウントは検索したときに選別しておきたい。
2.Twitter API v2では難しそう
ツイートを検索して取得とかは比較的簡単にできるようなんだが、自動フォローやリストインが私のような初心者コースではかなり難関な感じがします。
ググっても出てこないんですが、何が難しいってTwitterAPIのV1.1とV2の情報が混在していて私にはわけがわからない。
3.妥協してTwitterAPIV1.1のコードを拾ってきて少し弄ってみた。
TwitterにAPI V1.1を使いたいんじゃ申請をして。パクリ元、いや引用元は以下の通り。
TweepyでTwitterアカウントを自動フォローする方法 | みゃふのPythonプログラミング解説
import tweepy
import time
# API情報(API1.1)を記入
consumer_key=' '
consumer_secret=' '
ACCESS_TOKEN=' '
ACCESS_TOKEN_SECRET=' '
#API V1.1認証
auth = tweepy.OAuthHandler("consumer_key","consumer_secret")
auth.set_access_token("ACCESS_TOKEN","ACCESS_TOKEN_SECRET")
api = tweepy.API(auth)
#検索したいキーワードをいれる。もしくははORにしてやれば良いみたい。
#リツイートは拾いたくないのでフィルターする。
query = "#レザークラフト OR #LeatherCraft -filter:retweets"
#CRONで定期的に動かすのでバン対策にカウント少なめにした。
#検索方法は新しいもの(recent)、人気なもの(popular)と混在型(mixed)があるらしい。
results = api.search_tweets(q=query,result_type='mixed',count=10)
#実行
for result in results:
#検索結果でユーザーを抽出
screen_name = result.user.screen_name
print('@' + screen_name + 'をフォロー処理中...')
for i in range(3): #RateLimitにかかったら3回までリトライ
try:
if result.lang == 'ja': #日本語ユーザーかどうかフィルタリング
api.create_friendship(screen_name=screen_name) #フォローする
api.add_list_member(screen_name=screen_name,list_id="リスト番号") #リストにそのツイートのユーザ名を追加する
print('@' + screen_name + 'さんのフォローに成功しました。')
else:
print('@' + screen_name + 'さんは日本語アカウントではありません。')
except tweepy.TweepError as e: #エラーはこっちで処理(この辺の理解がまだできてない)
if e.reason == "[{'message': 'Rate limit exceeded', 'code': 88}]":
print(e)
time.sleep(15 * 60) #15分待機
else:
break
else:
time.sleep(5) #5秒おく
break
こんな具合でほぼパクってきたものをちょっといじってそのまま動かした。
引用元さんありがとう。
V2でやるにはどうやったら良いのだろう?今の私には少し難問だったようだ。
Amazon Mastercard (アマゾン マスターカード) 最大2%ポイント還元
¥1入会ポイント 2,000ポイント以上付与
(2025年4月13日 04:31 GMT +09:00 時点 - 詳細はこちら)
アースガーデン アースカマイラズ 草消滅 4.5L ガーデニング ジョウロヘッド (シャワー タイプ) 除草剤 液体 玄関 駐車場 庭 雑草対策 家庭用 園芸 雑草 除去
性状:淡黄色澄明水溶性液体 農林水産省登録番号:第22803号、毒性区分:普通物 効果持続時間:約5~8カ月・最長で10カ月(環境により異なる) 内容量:4.5L 成分:ブロマシル・グリホサートイソプロピルアミン塩・メコプロップPカリウム塩・水・界面活性剤等
(2025年4月13日 00:01 GMT +09:00 時点 - 詳細はこちら)
AAL 自転車 空気入れ 電動 電動空気入れ バイク 車 用 コードレス 6000mAh 大容量バッテリー 最大圧力150PSI 仏/英/米式バルブ対応 SOS/LED懐中ライト付き 自動停止 低騒音 エアポンプ モバイルコンプレッサー
99.9%精度のLCDデジタル圧力&4つの単位変換:LCDディスプレイにはリアルタイムの圧力値とプリセット値が±1psi精度で表示され、タイヤ圧力の状態を簡単に読み取り、観察することができます。 圧力単位はスイッチボタンで "PSI"、"BAR"、"KPA"、"kg/cm²"の4種類から選択できます。圧力単位、空気圧モード、バッテリー残量、設定空気圧、リアルタイム空気圧値の情報はLCDディスプレイに表示されます。 6000mAhの大容量 & 1分で充填:この電動空気入れは6000mAhの大容量バ... もっと読む
(2025年4月13日 05:24 GMT +09:00 時点 - 詳細はこちら)
ディスカッション
コメント一覧
まだ、コメントがありません