2022-02-13 RSelenium使用

2022-02-13  本文已影响0人  cppcwang

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.png

selenium-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()
#成功打开浏览器,模拟浏览行为
上一篇下一篇

猜你喜欢

热点阅读