使用R中的RedditExtractoR指定从reddit中抓取的时间范围

时间:2016-08-10 15:15:20

标签: r web-scraping timestamp reddit

我正在尝试使用R在给定时间范围内从某些subreddits中删除与给定搜索项相关的所有帖子标题。“RedditExtractoR”包非常有用,因为我可以使用这行代码返回所有相关的帖子,以及其他一些有用的信息:

> reddit_urls(search_terms = 'immigrant', subreddit = 'ukpolitics', page_threshold = 5, sort_by = "new")

我的问题是,这段代码从现在开始返回每个帖子,直到页面阈值填满,在这种情况下恰好比我需要的几个月,因为我在测试时设置了一个任意的'page_threshold'码。我的时间范围是从2015年9月9日到2016年6月23日(如果相关的话,unix时间戳分别为1441411201和1466726401),因此我的时间框架中有两个月的多余数据。

是否有任何方法可以包含某种类型的参数来限制输出到给定的时间段?例如“since = X”,“unitl = X”或“timeframe = X..X”(我之前在其他包中看过的参数)。

感谢。

1 个答案:

答案 0 :(得分:1)

看起来你可能想要一个while循环。

不能在我所在的位置安装RedditExtractoR软件包,但它可能看起来像下面的伪代码:

 i <- 1
 min_date <- as.Date("2015/09/09")
 max_date <- as.Date("2017/07/23")

while(Post_min > min_date){

 Data_out <- reddit_urls(search_terms = 'immigrant', subreddit = 'ukpolitics', page_threshold = i, sort_by = "new")

  i <- i+1
  Post_min <- min(Data_out$"column that contains date goes here")
}

 "Cut Data_out manually here using min_date and max_date (filter function, dplyr package)"

编辑:
对不起我迟到的回应,我在休息时工作,并没有安装新包。但是我现在在家,但扩展我的原始代码我认为以下可能会有所帮助。 (那就是如果你已经解决了它已经过了一个月了!)

library(RedditExtractoR)
library(dplyr)
library(magrittr)

i <- 1
min_date <- as.Date("2016/01/01")
max_date <- as.Date("2016/09/11")

Post_min <- min_date +1

while(Post_min > min_date){

  Data_out <- reddit_urls(search_terms = 'immigrant', subreddit = 'ukpolitics', page_threshold = i, sort_by = "new") %>%
            mutate(date = as.Date(date, "%d-%m-%y"))


  i <- i+1
  Post_min <- min(Data_out$date)
}

Data_out %<>% filter(date >=min_date  & date <=max_date)