今回はタイトルの通りPython+tweepyでキーワード検索したユーザーのフォロー状態を取得するコードを作成しようと思います。今までの筆者の記事を見て下さっていれば1行で終わってしまいますが、コードをまとめて一新したので改めて記事にしようと思いました!
フォロー状態を取得する前に準備すること
今までの記事でも記載してありますが、再度確認する意味も込めて下に書きます。
- pythonがインストールされていること。
- tweepyがインストールされていること。
- TwitterAPIのAPIキーを持っていること。
以上の3点が用意できている前提で話を進めていきます。pythonもtweepyも一瞬でインストールできますが、TwitterAPIは色々と面倒な手順が必要になってきます。ここでは紹介しませんが、他の方が紹介しているので検索して確認してみてください。
フォロー状態を確認する
さて、今回の記事の本題に入りたいと思います。とりあえず手順としてはTwitterAPIの検索メソッドを使用し、検索結果からユーザーのフォロー状態を取得するという単純な方法を使っていきます。とりあえず下記のコードで説明します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import tweepy import const import twitter_api_handler #TwitterAPIオブジェクトを取得 api_handler = twitter_api_handler.twitter_api_handler() api = api_handler.create_twitter_api() #検索実行 search_results = api.search(q=const.SEARCH_KEYWORD, count=const.FOLLOW_COUNT, lang=const.LANG) #検索結果を出力 for result in search_results: screen_name = result.user._json['screen_name'] user_id = result.id try: print (screen_name) print (user_id) print(result.user.following) except Exception as e: print(e) |
20行目のresult.user.following
が今回の記事のメイン部分になります。1行だけです。followingがTrueなら『フォロー状態』となり、Falseなら『非フォロー状態』という意味になります。上記のコードの中でfollowingの状態を確認して条件分岐を行えば、既にフォローしたユーザーにフォローするという無駄な実行結果を排除することができます。というかAPIに『フォローしていないユーザーのみ検索』とかいうフラグがあればこんなことしなくてもいいんですけどね。。。
ちなみに今回importを行っている中で
1 2 |
import const import twitter_api_handler |
上記の二つは自作したやつなのでそのままコードを使用するとエラーが出るのでコピペはやめて下さいね(笑)一応下記に貼っておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
const.py #TwitterAPIキーを設定 CONSUMER_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXX' CONSUMER_SECRET_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXX' ACCESS_TOKEN = 'XXXXXXXXXXXXXXXXXXXXXXXXX' ACCESS_TOKEN_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXX' #検索キーワード SEARCH_KEYWORD = "検索したいキーワードをここに入力" #検索数 FOLLOW_COUNT = 1 #検索する言語 LANG = 'ja' |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
auth_handler.py import tweepy import const class auth_handler(): def __init__(self): pass #認証情報を作成 def create_auth(self): self.auth = tweepy.OAuthHandler(const.CONSUMER_KEY, const.CONSUMER_SECRET_KEY) return self.auth #トークンを発行 def set_token(self): self.auth.set_access_token(const.ACCESS_TOKEN, const.ACCESS_TOKEN_SECRET) |
最後に
今回の記事は以上となります。
余談ですが今後はPythonのエディターとしてVisual Studio Codeを使用することにしました。別に大した理由はありませんが、業務で使用した経験があるので使ってみようと思っただけです(笑)本当はVisual Studioを使用したかったんですが、筆者のPCの容量が足りないので使用できなかったんですよね。。。PCの容量に余裕がある方はVisual Studio Communityなら無料で使用できるので試してみたはいかがでしょうか。ただ、ダウンロードとインストールに死ぬほど時間がかかることは保証します。それでも優秀なIDEかつ結構現場でも使用されるツールなので慣れるために使用するって理由でも使用する価値があると思います。
それでは、最後まで読んで頂きありがとうございます。