質問するログイン新規登録

回答編集履歴

1

追記

2021/03/16 00:53

投稿

quickquip
quickquip

スコア11357

answer CHANGED
@@ -10,4 +10,39 @@
10
10
 
11
11
  複数のアカウントとアプリを登録して鍵情報を使い分けるといった手段もありえます。
12
12
  一応、「同一内容を複数アカウントでツイート」のように、Twitterが"しないで"と明に言っている行為には該当してはいないと思います。
13
- しかしながら同一IPからの多重アクセスといった行為にどのような監視をしているのかはわからないので、"リスクなどは自分自身で判断する"必要があると思います。
13
+ しかしながら同一IPからの多重アクセスといった行為にどのような監視をしているのかはわからないので、"リスクなどは自分自身で判断する"必要があると思います。
14
+
15
+ ----
16
+
17
+ (追記)
18
+ すみません。コードを読み違えました。
19
+ `api.get_user(followerID)`の部分でrate_limitが回復するまで待たされる方が、時間がかかる主な原因でしょうね。ピントがずれた回答になってしまいました。
20
+ (rate_limit制限の分待たされるしそれを回避するのは無理、という結論が変わることはありませんが)
21
+
22
+ さて、5000件を超えるフォロワーの取得ですが
23
+
24
+ [https://docs.tweepy.org/en/v3.5.0/cursor_tutorial.html](https://docs.tweepy.org/en/v3.5.0/cursor_tutorial.html)
25
+
26
+ で解説されているCursorという機能がtweepyに用意されています。
27
+
28
+ ```python
29
+ followerIDs = api.followers_ids("ユーザーID")
30
+
31
+ followerDatas = []
32
+ for followerID in followerIDs:
33
+ ...
34
+ ```
35
+ の部分を
36
+ ```python
37
+ followerIDs = tweepy.Cursor(api.followers_ids, "ユーザーID")
38
+
39
+ followerDatas = []
40
+ for page in followerIDs.pages():
41
+ for followerID in page:
42
+ ...
43
+ ```
44
+ とすることで可能です。
45
+ followers/ids API が rate_limit制限に引っかかると、`followerIDs.pages()`がウェイトで待たされます。そこは元の回答の通りです。
46
+
47
+ followers/ids API の rate_limit制限と users/show API の rate_limit制限は別々で、
48
+ users/show APIの方が回復が遅いので、followers/ids の実行効率がよくないでしょう。