Rで解析:Twitterのデータを取得するコマンド例


投稿日: Rの解析に役に立つ記事 ,

取得したTwitterのOAuthを利用して、自分のタイムラインやキーワードの検索結果を取得する実行コマンドを紹介します。DTパッケージを利用していますのでユーザーやつぶやきも簡単に確認することができます。

TwitterのOAuth取得は下記の記事を確認してください
・Rで解析:TwitterのOAuthを取得するコマンド例
 https://www.karada-good.net/analyticsr/r-331/

実行コマンドはR version 3.2.2で確認しています。


実行コマンド

詳細はコメント、コマンドのヘルプを確認してください。日本語の検索キーワードはエラーが出ます。解決策をご存知の方、教えて下さい。

#作成したTwitterOAuthオブジェクトの読み込み
library("tcltk")
load(paste(as.character(tkgetOpenFile(title = "TwitterOAuthオブジェクトを選択",
filetypes = '{"TwitterOAuthオブジェクト" {"*.Oauth"}}',
initialfile = "TwitterOAuth.Oauth")), sep = "", collapse =""))

#httrライブラリの読み込み
library("httr")

#自分のタイムラインを取得
#取得数を設定
GetCount <- 50 req <- GET(paste0("https://api.twitter.com/1.1/statuses/home_timeline.json?count=", GetCount), config(token = MyOauth)) data <- content(req) #データを整形 #リンクURLの取得 LinkURL <- NULL for(i in seq(data)){ getURL <- data[[i]]$entities$urls if(length(getURL) == 0){ LinkURL <- c(LinkURL, "-") }else{ LinkURL <- c(LinkURL, getURL[[1]]$expanded_url) } } #ツイート内容の取得 TweetText <- sapply(data, "[[", "text") #リツイート数の取得 ReTweetCount <- sapply(data, "[[", "retweet_count") #いいね数の取得 FavoriteCount <- sapply(data, "[[", "favorite_count") #データをデータフレーム化 GetMyTweetInfo <- data.frame(LinkURL, TweetText, ReTweetCount, FavoriteCount) #データをDTパッケージでHTMLに出力 library("DT") #ツイート内容にハイパーリンクを付与 GetMyTweetInfo[, 2] <- paste0('<a href=', GetMyTweetInfo[, 1], ' target="_blank">', GetMyTweetInfo[, 2], '</a>') #1列めを削除 GetMyTweetInfo <- GetMyTweetInfo[, -1] #テーブルの作成 datatable(GetMyTweetInfo, rownames = FALSE, escape = FALSE, extensions = 'TableTools', filter = 'top', options = list(pageLength = 15, autoWidth = TRUE)) ###twitterを検索##### #検索項目を指定 query <- "karada-good.net" #取得数を設定 GetCount <- 50 req <- GET(paste0("https://api.twitter.com/1.1/search/tweets.json?q=", query, "&count=", GetCount), config(token = MyOauth)) TimeData <- content(req) #リンクURLの取得 LinkURL <- NULL for(i in seq(TimeData$statuses)){ getURL <- TimeData$statuses[[i]]$entities$urls[[1]]$expanded_url if(length(getURL) == 0){ LinkURL <- c(LinkURL, "-") }else{ LinkURL <- c(LinkURL, getURL) } } #ユーザーネームの取得 UserName <- NULL for(i in seq(TimeData$statuses)){ UserName <- c(UserName, TimeData$statuses[[i]]$user$name) } #スクリーンネームの取得 ScreenName <- NULL for(i in seq(TimeData$statuses)){ ScreenName <- c(ScreenName, TimeData$statuses[[i]]$user$screen_name) } #ツイート内容の取得 TweetText <- NULL for(i in seq(TimeData$statuses)){ TweetText <- c(TweetText, TimeData$statuses[[i]]$text) } #リツイート数の取得 ReTweetCount <- NULL for(i in seq(TimeData$statuses)){ ReTweetCount <- c(ReTweetCount, TimeData$statuses[[i]]$retweet_count) } #いいね数の取得 FavoriteCount <- NULL for(i in seq(TimeData$statuses)){ FavoriteCount <- c(FavoriteCount, TimeData$statuses[[i]]$favorite_count) } #データをデータフレーム化 GetMyTimeLine <- data.frame(LinkURL, ScreenName, UserName, TweetText, ReTweetCount, FavoriteCount) #データをDTパッケージでHTMLに出力 library("DT") #ツイート内容にハイパーリンクを付与 GetMyTimeLine[, 4] <- paste0('<a href=', GetMyTimeLine[, 1], ' target="_blank">', GetMyTimeLine[, 4], '</a>') #スクリーンネームからユーザーページのハイパーリンクを作成 GetMyTimeLine[, 3] <- paste0('<a href=https://twitter.com/', GetMyTimeLine[, 2], ' target="_blank">', GetMyTimeLine[, 3], '</a>') #1,2列めを削除 GetMyTimeLine <- GetMyTimeLine[, c(-1, -2)] #テーブルの作成 datatable(GetMyTimeLine, rownames = FALSE, escape = FALSE, extensions = 'TableTools', filter = 'top', options = list(pageLength = 15, autoWidth = TRUE)) [/code]


出力結果

・自分のタイムラインを取得
見にくい場合はこちら
https://www.karada-good.net/wp/wp-content/uploads/2015/11/GetMyTweetInfo.html

・karada-good.netの検索結果
見にくい場合はこちら
https://www.karada-good.net/wp/wp-content/uploads/2015/11/GetMyTimeLine.html


少しでも、あなたのウェブや実験の解析が楽になりますように!!

スポンサードリンク

関連コンテンツ


スポンサードリンク