【スクレイピング】Twitterのタイムラインを取得する

スクレイピング
スクレイピング準備記事
関連記事

【やりたいこと】Twitterタイムラインを取得したい!

Webサービスによっては、データ収集に使用するAPIを提供していることがあります。

今回は、その代表例として、TwitterのAPIを使用してタイムラインを取得してみます。

【10分でできる】APIによるタイムライン取得

※ダウンロード時間は10分の中に含まれていません。

1.使用したもの

・仮想環境 Ubuntu 14.04 64bit

・Virtual box

Oracle VM VirtualBox

・Vagrant

Vagrant by HashiCorp
Vagrant enables users to create and configure lightweight, reproducible, and portable development environments.

・Term Term

Tera Term (テラターム) プロジェクト日本語トップページ - OSDN
Tera Term は、オリジナルの Tera Term Pro 2.3 の原作者公認の後継版です。オープンソースで開発されており、UTF-8 表示に対応しています。 また、SSH1 対応モジュール TTSSH を拡張し、SSH2 プロトコルをサポートしています。

・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を使用して、スクリプトに認証情報を渡す方法をとります。

envファイルの作り方に関しては、こちらを参考にしてください。
[リンク]

以上の設定が完了したら、スクリプトを実行してみましょう。

③Pythonスクリプトファイルの実行

forego runを先頭につけて、スクリプトを実行します。

そうすることで、envファイルの認証情報をスクリプトに渡します。

※envファイルは、実行するスクリプトファイルと同じフォルダに保存してください。

上記の画像が実行結果です。Twitterのタイムラインを取得することができました。

3.まとめ

Twitterのタイムラインを取得するために、Twitterの認証情報をforegoで実行スクリプトに渡しました。

【最後に】参考図書の紹介

以下の書籍は、私がPythonスクレイピングを勉強するにあたって、使用した書籍です。

「Python逆引き大全」は、秀和システムの技術書読み放題サービス「10×Eng」で読めます。最初の2週間は無料、それ以降は、月額900円で利用できます。

「プログラミング超初心者が初心者になるためのPython入門」はkindle unlimitedで読めます。

 

コメント

タイトルとURLをコピーしました