如何获取抓取的推文的时间?或者抓取特定时间段的推文

时间:2017-01-12 03:48:45

标签: r twitter

我尝试使用以下代码抓取推文:

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")

关于如何实现其中任何一个的任何想法?

1 个答案:

答案 0 :(得分:1)

我们可以使用函数twListToDF将对象转换为包含详细信息的数据框。

tweets <- searchTwitter("#stackoverflow", n = 2, lang="fr")
tweetsDF <- twListToDF(tweets)

现在,要获取推文的时间,请查看created列,它会为您提供发送推文的时间。

要获得具有特定持续时间的推文,我们可以使用since函数中的untilsearchTwitter参数

例如 -

searchTwitter("#stackoverflow",since = "2016-01-10" until = "2016-01-12")

这将为您提供这些日期之间的推文。

sinceuntil仅输入格式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"),]