受講をご検討中の方へ

COLUMN
連載コラム

2016.02.04

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件取れている筈です。

TOPICS
トピックス一覧

アーカイブ

データサイエンスアカデミーでは、
無料セミナー・説明会を実施中!

お申込みはこちらから!


Warning: require(/home/xsvx1022193/d4c-academy.org/DSA_site/vendor/composer/../myclabs/deep-copy/src/DeepCopy/deep_copy.php): failed to open stream: No such file or directory in /home/xsvx1022193/d4c-academy.org/DSA_site/vendor/composer/autoload_real.php on line 66

Fatal error: require(): Failed opening required '/home/xsvx1022193/d4c-academy.org/DSA_site/vendor/composer/../myclabs/deep-copy/src/DeepCopy/deep_copy.php' (include_path='/home/xsvx1022193/d4c-academy.org/public_html/d4c-academy/wp-content/plugins/backwpup/vendor/pear/archive_tar:/home/xsvx1022193/d4c-academy.org/public_html/d4c-academy/wp-content/plugins/backwpup/vendor/pear/console_getopt:/home/xsvx1022193/d4c-academy.org/public_html/d4c-academy/wp-content/plugins/backwpup/vendor/pear/http_request2:/home/xsvx1022193/d4c-academy.org/public_html/d4c-academy/wp-content/plugins/backwpup/vendor/pear/mail_mime:/home/xsvx1022193/d4c-academy.org/public_html/d4c-academy/wp-content/plugins/backwpup/vendor/pear/mail_mime-decode:/home/xsvx1022193/d4c-academy.org/public_html/d4c-academy/wp-content/plugins/backwpup/vendor/pear/net_url2:/home/xsvx1022193/d4c-academy.org/public_html/d4c-academy/wp-content/plugins/backwpup/vendor/pear/pear-core-minimal/src:/home/xsvx1022193/d4c-academy.org/public_html/d4c-academy/wp-content/plugins/bac in /home/xsvx1022193/d4c-academy.org/DSA_site/vendor/composer/autoload_real.php on line 66