業務でTwitterAPIのv1.1を使う必要があったのでその際に使ったコードを纏めておきます
Tweepyのバージョンは4.14.0を想定しています
Contents
認証
CK = 'xxx' CS = 'xxx' AT = 'xxx' AS = 'xxx' import json from requests_oauthlib import OAuth1Session # OAuth認証 api = OAuth1Session(CK, CS, AT, AS)
上記の認証はいつか使えなくなるので、その際はブラウザのセッション情報のcookieから認証情報を取得する必要があります
詳しくは下記参照:
https://github.com/tsukumijima/tweepy-authlib
ツイート
ツイートAPIはわざわざv1.1を使用しなくてもv2にあるので下記を参照してください
【Python】TwitterAPIのv2で画像や動画ツイートを行うサンプルプログラム
ユーザー情報取得
screen_name = 'python_mllover' res = api.get_user(screen_name=screen_name) print(res)
フォロー取得
screen_name = 'python_mllover' ids = api.get_friend_ids(screen_name=screen_name) print(len(ids)) print(ids)
フォロワー取得
screen_name = 'python_mllover' ids = api.get_follower_ids(screen_name=screen_name) print(len(ids)) print(ids)
ツイート検索(ユーザー)
screen_name = 'python_mllover' tweets = api.user_timeline( screen_name=screen_name, count=150, exclude_replies=False, include_rts=False, # "max_id":last_id )
import pandas as pd import datetime #アカウント指定 screen_name = 'python_mllover' #ツイート保存用変数&取得するツイートを計算する tweet_data = [] num = 0 for page in range(2): tweets = api.user_timeline( screen_name=screen_name, count=150, exclude_replies=False, include_rts=False, # "max_id":last_id ) for tweet in tweets: tweet.created_at += datetime.timedelta(hours=9) num += 1 tweet_data.append(['@'+Account, tweet.created_at, tweet.text]) df = pd.DataFrame(tweet_data) df
ツイート検索(ワード)
search_word = '転職' tweets = api.search_tweets(q=search_word, count=100)
加工処理サンプルコード
import pandas as pd import datetime data = [] tweets = api.search_tweets(q='転職', count=100) for tweet in tweets: tweet.created_at += datetime.timedelta(hours=9) screen_name = tweet.user.screen_name user_name = tweet.user.name data.append(['@'+screen_name, user_name, tweet.created_at, tweet.text]) df = pd.DataFrame(data) df
ユーザーフォロー
screen_name = 'python_mllover' api.create_friendship(screen_name=screen_name)
idベースでやる場合
id_ = '965799286117027841' # @python_mlloverの内部ID api.create_friendship(user_id=id_)
ユーザーリムーブ
screen_name = 'python_mllover' api.destroy_friendship(screen_name=screen_name)
ユーザーミュート
screen_name = 'takigare3' api.create_mute(screen_name=screen_name)
ユーザーブロック
screen_name = 'takigare3' api.create_block(screen_name=screen_name)
APIドキュメント
上記のもとになっているAPIの詳細は↓にあります。ほかにもまだまだ引数や機能があります
公式ドキュメント:https://docs.tweepy.org/en/stable/api.html
関連記事
【Python】TwitterAPI v2でツイート検索結果の画像を一括保存する
【Python】TwitterAPIのv2で画像や動画ツイートを行うサンプルプログラム
コメント