【问题标题】:How to make my crawler (made in R) automatic?如何使我的爬虫(用 R 制造)自动?
【发布时间】:2018-06-26 05:30:52
【问题描述】:

我一直在使用 RStudio 来抓取一些网站。我希望能够在白天的特定实例中自动运行我的代码。我一直在使用 Rcrawler 和 Rvest 来爬行。

重点是在一天中的不同时间使用不同的关键字从多个站点进行新闻聚合。我正在尝试自动化运行特定脚本的过程。

有没有办法在 R 中这样做,或者我应该转向 Python 吗? 我在 Windows 上使用 Rstudio。

【问题讨论】:

标签: r web-crawler rvest rcrawler


【解决方案1】:

有一种简单的方法可以做到这一点,但我不确定它是否正确。使用循环并在后台运行脚本。

while(1){
  tnow<-format(Sys.time(),'%H:%M')
  tschedule<-'18:00'
  while(tnow<tschedule){
    Sys.sleep(60)
  }
  # Your code here
}

启动条件可以根据需要修改,但是可以看思路

【讨论】:

    【解决方案2】:

    你没有提到你的操作系统,但如果你在 Linux / Unix 上,那么看看 Cron。有一个名为 CronR 的 r 包,它允许您在特定时间或间隔(每小时、每天等)安排脚本的运行。还有一个用于 CronR GUI 的 Rcommander 插件。

    你需要在Linux中安装并启动cron服务(即使用apt-get)

    然后您可以编写 R 脚本来安排作业;

    library(cronR)
    cmd <- cron_rscript("/home/job.R") #, log_append = TRUE)
    cmd
    cron_add(command = cmd, frequency = 'hourly', id = 'Scrape', description = 'Webscrape')
    cron_njobs()
    

    继续添加到输出的最佳方法是使用类似 write table with append = TRUE

    write.table(df, "Scrape.csv", sep = ",", col.names = F, append = T)
    

    该作业将一直运行,直到您选择结束它,它所做的只是执行整个 r 脚本,因此您对 .csv 等的所有写入都需要在该脚本中。

    【讨论】:

      猜你喜欢
      • 2014-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-09
      • 1970-01-01
      相关资源
      最近更新 更多