2022-02-13 RSelenium使用
RSelenium使用
近期在准备一门本科课程,内容主要和科技论文写作有关。原本这门课程的内容和R语言没有什么太大的关系,学院提出新的要求,即学生通过这门课程可以完成科学研究的选题,数据收集、整理、分析,学术报告的撰写等。本科生能够获取数据的途径有限,网络数据应该是非常重要的一个选择。因此,我就着手学习一些网络爬虫的知识,以便让学生学以致用。之所以选择用R,因为自己是R的忠实粉丝。
在这里简单记录一些网络爬虫学习过程遇到的问题。
在R上面一般用得比较多的是rvest,这个是一种很简单的R下的爬虫框架,大多数人都拿它来爬虫极其简单的html页面。selenium作用是模拟访问网页的行为,结合rvest可以爬取动态网页的内容。在使用selenium的过程,首先要学位驱动的配置,这也是我学习中遇到的最大的坑。
最初我按照教程中binman包,自动在C盘配置安装了chromedriver,geckodriver和selenium-server-standalone-x.xx.x.jar。
driver <- rsDriver(chromever = "98.0.4758.48", browser = "chrome", port = 4837L)
通过上述命令加载浏览器一切正常,然而(敲黑板)第二天总是报错,提示无法链接服务器server=unknow。网上查了大量的资料也没有办法解决这样的问题。无奈只好手动配置各种驱动文件。最后问题得到圆满的解决。
网页浏览器驱动要查找浏览器的版本再下载,我安装的驱动版本如下:
chromedriver放至C:\Program Files\Google\Chrome\Application,添加至环境path
geckodriver放至D:\Program Files\Mozilla Firefox,添加至环境path
image-20220213094658219.pngselenium-server-standalone-3.9.1.jar。
在CMD中定位到驱动安装的目录,运行selenium驱动
#安装java环境
#
java -jar selenium-server-standalone-3.9.1.jar #可用的selenium文件,运行过程中不要关闭
browser <- remoteDriver(
browserName = "chrome", #firefox
remoteServerAddr = "localhost",
port = 4444L #默认端口,可在selenium修改
)
#browser <- driver$client
#server <- driver$server
browser$open()
#成功打开浏览器,模拟浏览行为