通过任务调度器自动截屏

Automatical web-screenshot via taskscheduleR

我保证我不是网站政策专家,我最终获得的所有信息都将用于教学研究,因为我是一名学生。

我的目的是获取网页的一系列图像(我将在未来应用图像识别技术)。我想在R中写几行代码让电脑在特定时间自动截图。

我认为 Rpackages taskscheduleR and webshot 可能适合我。

我写了第一个脚本,它是调度程序:

library(taskscheduleR)
myscript <- system.file("extdata", "shooter.R", package = "taskscheduleR") 

## run script
taskscheduler_create(taskname = "SCHEDULE_TRAINING", rscript = myscript,  
                     schedule = "MINUTE", starttime = format(Sys.time() + 5, 
                     "%H:%M"))

## delete the tasks
taskscheduler_delete(taskname = "SCHEDULE_TRAINING")

然后我写了第二个脚本来制作屏幕截图 (shooter.R):

library(webshot)
#webshot::install_phantomjs() # only the first time 

URL="https://www.hattrick.org"

time0=gsub(":","",Sys.time())
time=gsub(" ","",time0)
out=paste(time,".png",sep="")

webshot(URL, out, delay=1)

如果我单独执行第二个脚本并且屏幕截图出现在我的文件夹中,则第二个脚本有效,但如果我通过第一个脚本执行脚本它不起作用(即使在输出中我没有收到任何错误) 并且没有出现屏幕截图。

有人可以帮助我或知道我可以做些什么来实现我的目标吗?

新建记事本在下面写下保存到r.bat

start /min T:\Repository\Mehul\shooter.R
  • 避开路径中的 space。
  • 写入 r 脚本的完整路径。
  • 当您创建计划任务时 运行 r.bat 而不是 shooter.R
  • 在 Rscript.exe 中的默认程序上将 r 脚本设置为 运行,它将从 ..\R-3.4.3\bin\Rscript.exe
  • 中找到