当需要持续更新通过爬虫获取的数据时,我们通常可以设置定时任务自动爬取,而不用每次人工运行爬虫程序。 通过R语言中的Rselenium包爬取数据需要先启动服务器,所以定时爬取就不只是运行一个R语言脚本程序即可。
要设置R语言Rselenium包定时自动爬取网页有两个方法: 方法1.先设置定时任务启动服务器(selenium-server-standalone-4.0.0-alpha-2.jar),再设置另一个定时任务运行R语言脚本程序。 方法2.在批处理程序(.bat程序)中依次启动服务器、运行R语言脚本程序,设置定时任务运行批处理程序。
如下是通过方法2设置Rselenium包自动定时爬取网页的步骤:1.准备好R语言爬虫脚本程序。 最好先在RGui中通过source('待执行脚本.R'),测试通过R语言脚本程序。 因为Rscript.exe本质是R程序,而RStudio是R的集成开发环境,是不同的两个程序且RStudio的兼容性更好,所以RStudio成功运行的R程序在R中运行可能会出现其他异常需要处理。 使用Rselenium包爬取数据的方法及示例见:Rselenium爬虫 。2.编写批处理程序(.bat程序)。 代码示例如下: #启动jar包服务器时,命令行窗口会一直运行,导致批处理不能执行下一句,所以用start开启另一个命令行窗口来执行java -jar命令
start "" cmd /k "java -jar E:\auto_run\selenium-server-standalone-4.0.0-alpha-2.jar"#启动jar包服务器需要一定时间,只有确保启动成功后才能启动R语言爬虫脚本程序,所以这里用ping命令延时20秒
ping -n 20 127.1 >nul#通过Rscript.exe执行R语言爬虫脚本程序
"C:\Program Files\R\R-4.0.2\bin\x64\Rscript.exe" "E:\auto_run\auto_run_ftx\auto_run_ftx.R"3.设置系统定时任务执行批处理程序(.bat程序)。 详细设置方法见:win7设置定时任务。