

はじめまして。  
現在、データ分析に関する内容としてpythonのtweepy(3.9.0)を使用してデータを取得しようと思っております。  
そこで質問です。タイトルにもある通り、特定のツイートに対してリツイートしたユーザーidを全件取得する方法を知りたいです。全件です。リツイートの数が1000件あれば、1000件のユーザーidを取得したいです。ユーザーid自体はとってこれるのですが、全件取得ができません。以下、試したコードです。

[code]

    import tweepy
    
    CONSUMER_KEY    = '〇〇〇〇〇〇〇〇〇〇〇〇'
    CONSUMER_SECRET = '✕✕✕✕✕✕✕✕✕✕✕✕'
    ACCESS_TOKEN    = '〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇'
    ACCESS_TOKEN_SECRET   = '✕✕✕✕✕✕✕✕✕✕✕✕✕✕✕✕✕✕✕'
    
    auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
    auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
    api = tweepy.API(auth, wait_on_rate_limit=True)
    
    retweeters1 = tweepy.Cursor(api.retweeters, id=1234567890).Items()
    retweeters2 = api.retweeters(id=1234567890, cursor= -1)
    
[/code]

retweetwer1も2も全件取得は出来なかったです。どのようなコードを書けば全件取得できるか教えていただきたいです。  
また、Cursorの意味についてもあまり理解できなかったので、併せて教えていただけると幸いです。  
よろしくお願いします。


CC BY-SA 4.0
2020-10-23T08:54:18.810
71458
2022-07-16T08:02:10.213
2020-10-23T13:11:38.110
42426
question
python twitter
tweepyを使って、特定のツイートに対してリツイートしたユーザーidを全件取得する方法はありますか？


ブラウザでアクセスした時も同様ですが、結果が一定以上ある場合にはページ分割がされると思います。  
今回のようにすべての結果を取得したい場合には、`for` ループなどを使って繰り返し処理する方法が考えられます。

以下のページのコードスニペットにはいくつかのサンプルが載せてあるので、これらが参考になるんじゃないかと思います (私自身は普段 Python
を書かないので、サンプルそのままの紹介に留めます)。

[コードスニペット — tweepy 3.6.0
ドキュメント](https://kurozumi.github.io/tweepy/code_snippet.html#followall)

> このスニペットは、認証されたユーザーのすべてのフォロワーをフォローします。
[code]

>     for follower in tweepy.Cursor(api.followers).items():
>         follower.follow()
>  
[/code]

また、"Cursor" については以下の説明が参考になるかと。

[カーソルのチュートリアル — tweepy 3.6.0
ドキュメント](https://kurozumi.github.io/tweepy/cursor_tutorial.html)

> Twitter
> APIの開発では、ページネーションを多く使用しています。タイムライン、ユーザリスト、ダイレクトメッセージなどを繰り返し処理するページングを実行するには、リクエストごとにページ/カーソルパラメータを指定する必要があります。ここでの問題は、ページネーションループを管理するために多くのボイラープレートコードが必要になることです。ページ番号を簡単にし、必要なコードを少なくするためにTweepyにはCursorオブジェクトがあります。

なお、前述のリンク先は有志による日本語訳となるので、必要に応じて (英語になりますが)
[公式のドキュメント](http://docs.tweepy.org/en/stable/) も参照してください。


CC BY-SA 4.0
2020-10-23T12:37:11.227
71462
2020-10-23T12:44:48.357
2020-10-23T12:44:48.357
3060
3060
71458
answer