ネリコは興味津々

気になったこと、調べたこと、雑記なんかを書いてます

PythonでTwitter APIを叩きたい

Twitter APIを触ってみる

TwitterAPIが公開されています。TwitterAPIREST APIなので、HTTPリクエストを投げるとJsonで応答してくれます。その仕組みを使用してツイートやフォローはもちろん、特定のワードを検索したりなど、私達がいつも手動で行っているようなことを自動化しているのがBotというわけです。Twitter APIは申請さえすれば誰でも無料で使用できるとのことなので少し触ってみます。

PythonTwitter APIを叩きたい

Twitter APIを叩くと言っても実際どうやるのか。HTTPリクエストが投げられるのならなんでもいいと思いますが、今回は少しだけ過去に触ったことのあるPythonから叩いてみることにしました。というのもPythonには「tweepy」という便利なライブラリがあるらしいです。ググると多くの人が試しているのが確認できました。実に心強い。

準備

さっそくtweepyを使ってTwitter APIを叩いてみたいところですが、その前に申請やインストールなどやるべきことがいくつかあります。

ざっくりこんな感じです。詳しい手順は別ページにまとめているので参考にしてください。これで準備が整ったのであとは試してみるだけ。ちょっと色々触っていってみようかと思います。

Hello Tweepy

Getting started — tweepy 4.10.0 documentation

せっかくなんでtweepyのチュートリアルをやってみます。

This example will download your home timeline tweets and print each one of their texts to the console. Twitter requires all requests to use OAuth for authentication. The Authentication documentation goes into more details about authentication.

自分のタイムラインを取得して表示する処理のようです。

import tweepy

consumer_key = '★★★'
consumer_secret = '★★★'
access_token = '★★★'
access_token_secret = '★★★'

auth = tweepy.OAuth1UserHandler(consumer_key, consumer_secret, access_token, access_token_secret)

api = tweepy.API(auth)

public_tweets = api.home_timeline()
for tweet in public_tweets:
    print(tweet.text)

★★★のところは自分のキーに置き換えてください。

少し紛らわしいですがconsumer keyというのがAPI KEYのことです。

consumer_keyとconsumer_secret
consumer_keyとconsumer_secret

access_tokenとaccess_token_secret
access_tokenとaccess_token_secret

わからなくなったらキーを再生成したほうが早いです。

それでは実行してみます。

C:\python>python hello.py
まだ仕事もありますしね、ね
あ、鶏むね肉あるし、なんか超絶ヘルシーな夜ご飯にでもしてみましょうか、ね。
元気いっぱいなお姉さんがヘッドスパしてくれました〜!
仙台つーしんさん(@sendai_tushin )プロデュースのドライヘッドスパ専門店 「まどろみ時間」に行ってきました!

気持ちよかった!!!まどろんだ!!!

話している途中でスっと寝てしまって、じぶんのイビキで起きた笑… https://t.co/LxHFwLiava
じゃがいも食べたーい
家にある食材
野菜
→キャベツ、ピーマン1個、ブロッコリー、玉ねぎ3玉くらい、えりんぎ、しめじ、えのき
肉
→豚こま、豚バラうす切り、手羽元、鶏ささ身、ひき肉、ベーコン、ソーセージ、手作りの鶏団子
その他
→牛乳、卵、わかめ、etc

メニューのご提案お願いします
この夏休み、特定のイベントや施設を目的として旅行を組むのはリスクが高くなってる。
現地についてからイベントの直前中止が決まることもあるだろうし、美ら海水族館目当てで沖縄に行ったら、突然休業が決まるとか、そういうのも起こりかねない。
これから渋谷、で撮影
欧州の人々における「夏」に対する意識が私のそれと根本的に思いっきり異なるもので、頭では理解していたつもりでも欧州チームの一員として働き始めて、まだまだ理解が追い付いていないし、一生追い付かないと思わされる事件が毎日発生している。夏ってあなたたちにとってなんなのよ?!ほんとに。
車内販売で購入しつつの新幹線飲み、楽しかった🍺

通常価格より少しお高めってところで、あまり利用してこなかったけど、ワクワク感あるし、便利でとてもよかった。次からどんどん利用していこう🎶
今日もまた夜ご飯悩んでおりますので、皆さまお力添えください。
おつかれさまです
遠方から参加する人も多い公演の中止ってキツいよね。チケット代は払い戻されるけど、予約してた交通費やホテル代が返金されるわけじゃないから。

いったい誰のツイートかわからないですけど、私のタイムラインの情報が取得できたようですね。

for tweet in public_tweets:
    print(tweet.user.name)
    print(tweet.text)
    print('-------------------------')

少しコードを変えてみます。ツイート主の名前と区切りを入れてみました。

C:\python>python hello.py
麩之介
RT @WalkingtheNorth: はいはい開けます開けます https://t.co/mn48dwbEky
-------------------------
せんべろnet
RT @rikakuma375: せんべろnetさんの本の表紙にもなってる、かつおたたきごま油漬け作ってみた おいしくてめちゃくちゃビールがすすんだ!中学生娘も気に入ってた また作るー
@1000bero_net https://t.co/eW8H9Cirh8
-------------------------
桂さん。
まだ仕事もありますしね、ね
-------------------------
桂さん。
あ、鶏むね肉あるし、なんか超絶ヘルシーな夜ご飯にでもしてみましょうか、ね。
-------------------------

なるほどなるほど。結果はJsonなので「.属性名」で必要箇所だけ抜き出せばうよさそうですね。