动态网页抓取(使用RSelenium包和Rwebdriver包的前期准备步骤:Java环境)
优采云 发布时间: 2021-11-04 19:07动态网页抓取(使用RSelenium包和Rwebdriver包的前期准备步骤:Java环境)
在使用rvest包抓取新浪财经A股交易数据时,我们介绍了rvest包的使用。但是rvest包只能抓取静态网页,不能对动态网页结构做任何事情,比如ajax异步加载。在 R 语言中,可以使用 RSelenium 包和 Rwebdriver 包来抓取此类网页。
RSelenium 包和 Rwebdriver 包都通过调用 Selenium Server 来模拟浏览器环境。其中Selenium是一款用于网页测试的Java开源软件,可以模拟浏览器的点击、滚动、滑动、文本输入等操作。因为 Selenium 是一个 Java 程序,所以在使用 RSelenium 包和 Rwebdriver 包之前,您必须为您的计算机设置一个 Java 环境。下面是使用RSelenium包和Rwebdriver包的准备步骤:
一、下载并安装RSelenium包和Rwebdriver包
RSelenium包可以直接从CRAN下载安装,Rwebdriver包需要从github下载。代码如下(必须先安装devtools包):
library(devtools)
install_github(repo= "Rwebdriver", username = "crubba")
二、Java 环境设置
理论上是调用Java程序安装JRE(Java Runtime Environment),但本文推荐安装JDK(Java Development Kit)。 JDK收录JRE模块,网上找到的Java环境变量设置教程大多是针对JDK的。
1、JDK下载(百度JDK可以下载)
2、JDK安装(按照提示安装即可)
3、环境变量设置(参考Java环境变量设置)
Windows下需要设置3个环境变量,分别是JAVA_HOME、CLASSPATH和Path。具体步骤如下:
(1)右击“计算机”,然后选择:属性-高级系统设置-环境变量;
(2)新建一个JAVA_HOME变量,指向jdk安装目录。具体操作:点击System Variables下的New,
然后在变量名中输入JAVA_HOME,在变量值中输入安装目录。比如我的JDK安装在C:\Program Files(x86)\Java\jdk1.8.0_144,
(3)参考(2)新建环境变量CLASSPATH中的步骤,
变量名类路径
变量值.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
注意值前面的两个符号。;
(4)设置path环境变量,在系统变量下找到path变量,打开后添加在变量值的末尾;%JAVA_HOME%\bin,注意前面的;.
(5)三个变量设置好后,打开cmd(命令提示符,在Windows中搜索cmd找到),输入javac,没有报错,说明安装成功。
三、Selenium 及浏览器驱动下载及运行
1、下载selenium,网址是
2、下载浏览器驱动,
Chrome 驱动程序:
火狐驱动程序:
下载时请注意浏览器的版本。如果使用Chrome浏览器,请参考selenium的chromedriver与chrome版本映射表(更新为v2.34).
3、 打开cmd运行selenium和浏览器驱动。比如我用的是Chrome浏览器,所以在cmd中输入java-Dwebdriver.chrome.driver="E:\Selenium\chromedriver.exe"-jarE:\Selenium\selenium-server-standalone-3.8.1.jar
注意如果selenium和驱动没有放在java默认目录下,这里需要引用绝对路径。
如果出现以下情况,则操作成功(R语言调用RSelenium包和Rwebdriver包时,cmd不应关闭)。
四、 至此所有的前期准备工作已经完成,可以使用RSelenium包和Rwebdriver包了。
以RSelenium包为例:
<p>library(RSelenium)
#### 打开浏览器
remDr