質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.52%

[python]tweepyでフォロワーが20件しか取得できない

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 931

moscow3

score 155

pythonのtweepyを用いて自分のフォロワーを整理しようとしたのですが、なぜか20件しか取れません。どこに原因があるのでしょうか

仕様

自分のフォロワーを次のように整理します。
  • フォロワー数が1000人以上かつフォロー人数よりもフォロワーが断然多い場合、「大手・公式サイト」として仕分ける

  • 逆に、フォロー人数に対して極端にフォロワーが少ない場合「BOT・スパム」として仕分ける

  • 相手からのフォローバックが返ってきていない場合「片思い」として仕分ける

  • 上のいずれにも当てはまらない場合は「FF内の友達」として仕分ける。

また、仕分けたフォロワーごとに別々のtxtファイルに書き出します。

問題

CMDへの出力、txtへの出力ともに20件までしか表示されない。

該当のソースコード

# Tweepyライブラリをインポート
import tweepy
# 各種キーをセット
from credentials import *

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)


userID = "my_twitter_id" #ここに自分のuserIDを入れる
followers_id = api.followers_ids(userID) #自分のアカウントのフォロワーをすべて取得する
following_id = api.friends(userID) #自分のアカウントのフォロイングをすべて取得する
#↑形式が違うことに注意!

BIG=[]#大手さん
FF=[]#FF内
R=[]#片思い
BOT=[]#業者
BIGtxt = open("followerslist/大手さん.txt", "w")
FFtxt = open("followerslist/FF内.txt", "w")
Rtxt = open("followerslist/片思い.txt", "w")
BOTtxt = open("followerslist/業者.txt", "w")


for f in following_id: #自分がフォローしているユーザーを1つづつ取得

    class following:
        num=f.id
        name=f.name
        ID=f.screen_name
        followings=api.get_user(f.screen_name).friends_count
        followers=api.get_user(f.screen_name).followers_count

    if following.followers>following.followings*3 and following.followers>1000:#フォロー数に対してフォロワー数が多い
        try:
            print("大手さん",following.name,following.ID,following.followers,following.followings)
        except:
            print("大手さん ????",following.ID,following.followers,following.followings)
        #BIG.append([following.ID,following.followers,following.followings])
        BIGtxt.write(following.ID+",")
        try:
            BIGtxt.write(following.name+",")
        except:
            BIGtxt.write("????,")
        BIGtxt.write(str(following.followings)+",")
        BIGtxt.write(str(following.followers)+"\n")

    elif following.followers*4<following.followings:#フォロー数に対してフォロワーが極端に少ない
        try:
            print("業者",following.name,following.ID,following.followers,following.followings)
        except:
            print("業者 ????",following.ID,following.followers,following.followings)
        #BOT.append([following.ID,following.followers,following.followings])
        BOTtxt.write(following.ID+",")
        try:
            BOTtxt.write(following.name+",")
        except:
            BOTtxt.write("????,")            
        BOTtxt.write(str(following.followings)+",")
        BOTtxt.write(str(following.followers)+"\n")
        ##api.destroy_friendship(f)

    elif following.num not in followers_id: #片思い
        try:
            print("片思い",following.name,following.ID,following.followers,following.followings)
        except:
            print("片思い ????",following.ID,following.followers,following.followings)
        #R.append([following.ID,following.followers,following.followings])
        Rtxt.write(following.ID+",")
        try:
            Rtxt.write(following.name+",")
        except:
            Rtxt.write("????,")
        Rtxt.write(str(following.followings)+",")
        Rtxt.write(str(following.followers)+"\n")
        ##api.destroy_friendship(f)
    else:
        try:
            print("FF内",following.name,following.ID,following.followers,following.followings)
        except:
            print("FF内 ????",following.ID,following.followers,following.followings)
        #FF.append([following.ID,following.followers,following.followings])
        FFtxt.write(following.ID+",")
        try:
            FFtxt.write(following.name+",")
        except:
            FFtxt.write("????,")
        FFtxt.write(str(following.followings)+",")
        FFtxt.write(str(following.followers)+"\n")

BIGtxt.close()
FFtxt.close()
Rtxt.close()
BOTtxt.close()

初心者コードなので突っ込みどころ満載だと思いますがその点は見逃してくださいm(-_-)m

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる