見出し画像

【Python】TwitterAPIなしでTwitter操作を行う方法【Selenium不要】

Novaです。今回はTwitterAPIなしでTwitterを自動化する方法について解説していきます。
最近何かと世間を騒がせているTwitter社ですが、なんとイーロンの仕業により4月末よりTwitterAPIが有償となりました。
Basicプランですら月100ドルという衝撃の価格設定となっております。。笑

ですが、実はTwitterAPIを使わずに無料でTwitterAPIと全く同等のことをすることができます。
もちろんSelenium(ブラウザ操作)も必要ありません。

APIと同等のことを無料で行うためには、以下の二つの方法があります。
1.Seleniumを使ってブラウザ操作をする
2.Cookie等を使ってプログラムからTwitterにログインする

ただし、1番の方法ですと処理が煩雑ですし、何より実行に時間がかかります。
よって今回は2番の方法でプログラムからログインする方法について解説していきます。
こちらの方法ですと、TwitterAPIでできるすべてのことが簡単にできます。

なお、読み進めるためにはPythonの初歩的な知識が必要になります。

事前準備

ライブラリのインストール

コマンドプロンプト(またはターミナル)にて以下のコマンドを打ち込んでください。

pip install tweepy tweepy-authlib

ファイルのインストール

以下の添付ファイルのダウンロードをお願いいたします。

ダウンロードができましたら、こちらのファイルを実装を行うフォルダと同じディレクトリにいれてください。

実装

次に、メインプログラムの実装に移っていきます。
まずは以下のコードをプログラムの上部に張り付けてください。
※メインプログラムはutils.pyと同じディレクトリ(フォルダ)内にある必要があります。

import utils
import tweepy

screen_name = "ここにTwitterID"
password = "ここにパスワード"
api = utils.get_cookie_api(screen_name,password)


ツイートの検索

以下の例では、「Twitter」という検索キーワードで検索した検索結果が200件取得されます。

tweets = tweepy.Cursor(api.search_tweets, q = "Twitter", \       # APIの種類と検索文字列
                         include_entities = True, \ # 省略されたリンクを全て取得
                         tweet_mode = 'extended', \ # 省略されたツイートを全て取得
                         lang = 'ja').items(200)

ユーザー情報の検索

以下の例では、TwitterIDを指定してユーザーを取得しています。
(xxxxxxの部分に取得したいユーザーのIDが入ります)

user = api.get_user(screen_name="xxxxxx")

ツイートにいいねする

以下の例では、ツイートのIDを指定していいねをしています。
ツイートの検索と組み合わせて使うのが一般的かと思います。

api.create_favorite(id = "xxxxxxxxxxxxx")

ツイートをリツイートする

いいねと同様、ツイートのIDを指定します。

api.retweet(id = "xxxxxxxxxxxxx")

フォローする

以下の例では、TwitterIDを指定してユーザーをフォローしています。
(xxxxxxの部分にフォローしたいユーザーのIDが入ります)

api.create_friendship(screen_name = "xxxxxx")

ブロックする

以下の例では、TwitterIDを指定してユーザーをブロックしています。
(xxxxxxの部分にブロックしたいユーザーのIDが入ります)

api.create_block(screen_name = "xxxxxx")

DMを送信する

以下の例では、特定のユーザーに対しメッセージを送っています。
xxxxxxの部分がユーザーのIDで、Helloの部分がメッセージです。

api.send_direct_message(recipient_id="xxxxxx", text = "Hello")


記事は以上になります。この記事に載っていない機能も使用したい方は、以下のリンクを参照ください。
https://docs.tweepy.org/en/stable/api.html#tweepy.API.create_block

この記事が気に入ったらサポートをしてみませんか?