RでTwitterデータをクローリングするために

RでTwitterデータをクローリングするために

データサイエンスにおけるインプットデータについて、大きくはPOSデータのような数値型/定型データと、

SNSでのクチコミのような文章型/非定型データに分類できます。

 

特に後者の文章型/非定型データについては、Webクローリングによって収集することも多い一方、大量に取得するためにはプログラムやデータ蓄積のための環境が必要になるため、ソーシャルデータを販売している会社から購入するというケースも見られます。

 

ソーシャルデータとして代表格のTwitterについてはAPIが提供されており、それらを用いることで効率的にデータ収集を行うことが可能です。

一方で、TwitterのAPIの仕様については何度か更新/変更が発生しており、昔作ったクローリングのスクリプトが機能しない・・という事も起こります。

 

今回は、現時点(投稿した2016年2月時点)のAPI仕様を元に、Rを用いたクローリング方法についてご紹介します。

 

※事前情報

■クローリングに必要なライブラリ、バージョンの確認について

https://www.karada-good.net/analyticsr/r-170/

 

■oauth認証について

http://www.appbank.net/2012/10/14/iphone-news/490680.php

 

以下のRのサンプルコードは、Search API機能を用いて任意のキーワードを含むツイート情報を収集するものです。

APIは15分間で発行できる数や過去1週間分迄しか取得できないという制限があるため、それらの制約条件の中で、うまく収集できるように処理することが重要です。

##########################################################

install.packages(“base64enc”)
install.packages(“twitteR”)

#ライブラリの読み込み
library(“twitteR”)
library(“base64enc”)

#情報の入力(Oauth認証:事前に登録が必要)
consumerKey <- XXXXXX
consumerSecret <- XXXXX
accessToken <- XXXXXX
accessSecret <- XXXXX

#処理の準備
#httr_oauth_chcheを保存
options(httr_oauth_cache = TRUE)

#認証情報の取得
setup_twitter_oauth(consumerKey, consumerSecret, accessToken, accessSecret)

#日本語でサーチ擦る場合、iconv関数でのコンバートが必要
SearchWords <- c(iconv(“#検索したい日本語キーワード”,”CP932″,”UTF-8″))

 

#検索結果のツイートリストはそのままでは加工しにくいため、データ変換して格納

#下記サンプルでは100件分のデータ取得
TwGetDF <- twListToDF(searchTwitter(SearchWords, n = 100))

##########################################################

上記のサンプルソースで、TwGetDF の中を確認してもらえると、指定したキーワードを含むツイートデータが最大100件取れている筈です。