

【やりたいこと】Twitterのタイムラインを取得したい!
Webサービスによっては、データ収集に使用するAPIを提供していることがあります。
今回は、その代表例として、TwitterのAPIを使用してタイムラインを取得してみます。
【10分でできる】APIによるタイムライン取得
※ダウンロード時間は10分の中に含まれていません。
1.使用したもの
・仮想環境 Ubuntu 14.04 64bit
・Virtual box
・Vagrant

・Term Term
・Python3.4
・requests-oauthlib
・forego
2.手順
※下記の記事の内容を完了しているものとして、進めていきます。


①requests-oauthlibとforegoのインストール
Twitterのデータ収集に使えるAPIを呼び出すためにrequests-oauthlibをインストールします。
スクリプトに環境変数を渡すためにforegoをインストールします。詳細は、後に記載しています。
pip install requests-oauthlib
上記を実行し、requests-oauthlibをインストールしましょう。
wget https://bin.equinox.io/c/ekMN3bCZFUn/forego-stable-linux-amd64.deb
sudo dpkg -i forego-stable-linux-amd64.deb
上記2つを実行し、foregoをインストールしましょう。
②Pythonスクリプトファイルの作成
import os from requests_oauthlib import OAuth1Session # 環境変数から認証情報を取得する。 CONSUMER_KEY = os.environ['CONSUMER_KEY'] CONSUMER_SECRET = os.environ['CONSUMER_SECRET'] ACCESS_TOKEN = os.environ['ACCESS_TOKEN'] ACCESS_TOKEN_SECRET = os.environ['ACCESS_TOKEN_SECRET'] # 認証情報を使ってOAuth1Sessionオブジェクトを得る。 twitter = OAuth1Session(CONSUMER_KEY, client_secret=CONSUMER_SECRET, resource_owner_key=ACCESS_TOKEN, resource_owner_secret=ACCESS_TOKEN_SECRET) # ユーザーのタイムラインを取得する。 response = twitter.get('https://api.twitter.com/1.1/statuses/home_timeline.json') # APIのレスポンスはJSON形式の文字列なので、response.json()でパースしてlistを取得できる。 # statusはツイート(Twitter APIではStatusと呼ばれる)を表すdict。 for status in response.json(): print('@' + status['user']['screen_name'], status['text']) # ユーザー名とツイートを表示する。引用元:Pythonクローリング&スクレイピング
Pythonスクリプトファイルrest_api_with_requests_oauthlib.pyを使用
上記のスクリプトを作成しましょう。
さっそく、スクリプトを実行したいところですが、そのままの状態では、Twitterのタイムラインを取得することはできません。
なぜなら、Twitterの認証情報がスクリプトに記入されていないからです。
Twitterの認証情報をスクリプトに記入する方法として、本記事では、envファイルとforegoを使用して、スクリプトに認証情報を渡す方法をとります。
以上の設定が完了したら、スクリプトを実行してみましょう。
③Pythonスクリプトファイルの実行
forego runを先頭につけて、スクリプトを実行します。
そうすることで、envファイルの認証情報をスクリプトに渡します。
※envファイルは、実行するスクリプトファイルと同じフォルダに保存してください。
上記の画像が実行結果です。Twitterのタイムラインを取得することができました。
3.まとめ
Twitterのタイムラインを取得するために、Twitterの認証情報をforegoで実行スクリプトに渡しました。
【最後に】参考図書の紹介
以下の書籍は、私がPythonスクレイピングを勉強するにあたって、使用した書籍です。
「Python逆引き大全」は、秀和システムの技術書読み放題サービス「10×Eng」で読めます。最初の2週間は無料、それ以降は、月額900円で利用できます。
「プログラミング超初心者が初心者になるためのPython入門」はkindle unlimitedで読めます。
コメント