无可否认,相比于只能爬静态网页数据的rvest,基于Selenuim的RSelenium及Rwebdriver有着巨大优势。但RSelenium使用起来比较麻烦,需要装Selenium等依赖软件,配上定时任务之后简直是个无敌巨坑,本次就来记录一下。
如果你想用RSelenium来模拟浏览器操作爬取数据,那么最好跟着比较详细的教程来:
CSDN-专业IT技术社区-登录blog.csdn.net CSDN-专业IT技术社区-登录blog.csdn.net跟着这两篇文章来装依赖软件,基本上可以避过很多坑。
再来是在Rstudio里面运行时我遇到的坑,如果在运行中遇到错误,这里有一些经验供参考:
- 如果电脑里有一些会影响ip的软件(你懂的),那么需要把这些软件停了,不然remoteDriver会报错。
- 抓取元素时要确定返回的是webElement对象还是list,如果返回的是list的话需要把webElement提取出来再调用webElement相关函数。详见:
再来谈定时运行。taskscheduleR包能在R环境里设置定时运行任务,其中有图形交互界面可以很方便的通过鼠标测试。但要是你的任务没有顺利运行,应该用函数来设定任务并查看错误,例如:
>library(taskscheduleR)
>myscript<-"bdtop.R"
>taskschedul