我尝试使用以下代码抓取推文:
library("twitteR")
library("ROAuth")
consumer_key <- '###'
consumer_secret <- '###'
access_token <- '###'
access_token_secret <- '###'
setup_twitter_oauth(consumer_key, consumer_secret, access_token, access_token_secret)
search_string <- URLencode("#stackoverflow")
no_of_tweets <- 2
tweets <- searchTwitter(search_string, n = no_of_tweets, lang="fr")
tweets
效果很好,但我得到的格式如下:
[[1]]
[1] "Account: content of the tweet which contains #stackoverflow"
[[2]]
[1] "Another_account: content of that other tweet which contains #stackoverflow"
这很好,但我也想检索发送推文的时间。这可能吗?
或者,如果我可以在API调用中发送一段时间,我可以。我知道约会的可能性,例如:
search_string <- URLencode("#stackoverflow since:2017-01-04 until:2017-01-05")
但我无法找到比一天更精确的方法。这不起作用:
search_string <- URLencode("#stackoverflow since:2017-01-04T10:00:00 until:2017-01-04T10:30:00")
关于如何实现其中任何一个的任何想法?
答案 0 :(得分:1)
我们可以使用函数twListToDF
将对象转换为包含详细信息的数据框。
tweets <- searchTwitter("#stackoverflow", n = 2, lang="fr")
tweetsDF <- twListToDF(tweets)
现在,要获取推文的时间,请查看created
列,它会为您提供发送推文的时间。
要获得具有特定持续时间的推文,我们可以使用since
函数中的until
和searchTwitter
参数
例如 -
searchTwitter("#stackoverflow",since = "2016-01-10" until = "2016-01-12")
这将为您提供这些日期之间的推文。
since
和until
仅输入格式YYYY-MM-DD
如果我们需要根据时间对推文进行分组,我们可以使用相同的created
列,例如
tweetsDF[tweetsDF$created > as.POSIXct("2017-01-04 10:00:00") &
tweetsDF$created > as.POSIXct("2017-01-04 10:30:00"),]