抓取网页数据(【数据获取】爬虫利器Rvest包(JS渲染页面))
优采云 发布时间: 2022-03-08 10:07抓取网页数据(【数据获取】爬虫利器Rvest包(JS渲染页面))
本文所有内容均基于 Windows。
前言
对于R进行静态页面爬取,rvest、RCurl、XML包都可以实现这个功能。这里推荐两个文哥写的文档,介绍如何爬取静态页面数据。我也是通过这两篇文章开始接触R爬虫的文章。
传送门:【数据采集】爬虫工具Rvest包【数据采集】爬虫基础Rcurl和XML包
几天前,我遇到了一个需要抓取动态页面(JS 渲染页面)的问题。通过网络采集知识,不断整理,终于初步解决了问题。由于相关的中文资料不多,所以写了这个文章与大家分享。
要解决爬取动态页面的问题,需要一个比较强大的R包——RSelenium。
RSelenium 简介
RSelenium 使用 R 调用 Selenium Server。
什么是 Selenium 服务器?
Selenium Server 是一个独立的 JAVA 程序,允许您在不同的浏览器上打开 URL、操作网页和抓取网页元素。
所以,我们可以通过 Selenium Server 对网页进行操作,然后对操作后的数据进行爬取,从而对动态页面进行爬取。
Selenium 服务器安装
下载列表:
JAVA JDK 1.8(门户)。 Selenium Server 是一个需要 JAVA 环境的 JAVA 程序。 Selenium 服务器独立 3.0.1(门户)。 Selenium 服务器的 JAVA 文件。铬(门户)。 ChromeDriver(需要爬墙门户)(无爬墙门户)。 Selenium Server 调用 Chrome 的驱动程序。
安装过程:
首先,安装JAVA JDK 1.8.
然后,安装 Chrome(最新版本)。
之后,将解压后的ChromeDriver.exe(最新版)放入Chrome安装路径。它必须放在与 chrome.exe 相同的目录中。例如:
chrome.exe和chromedriver.exe都在C:\Program Files(x86)\Google\Chrome\Application目录。(一般Chrome的默认安装路径在这里)
最后将这个路径C:\Program Files(x86)\Google\Chrome\Application添加到环境变量PATH的路径中。具体添加过程请参考这里(传送门)。
基本配置,大功告成!
RSelenium 用法和示例
通过示例详细了解 RSelenium 的使用。
目标:爬取网贷之家数据平台( )中各P2P平台近7天的投资人数量、人均投资金额、平均收益率和交易量。下图中红框的内容。
流程:
启动 Selenium 服务器。在 selenium-server-standalone-3.0.1.jar 文件所在的位置,使用 shift+鼠标右键选择“Open command line here”。在命令行运行以下代码启动 Selenium Server。
java -jar selenium-server-standalone-3.0.1.jar
运行后,最小化,不要关闭。通过R调用Selenium Server并打开网页,点击页面,选择对应的条件。通过 RSelenium 与 rvest 一起抓取数据。这个过程通过阅读Rcode一步一步来解释。
<p>################调用R包#########################################
library(rvest) # 为了read_html函数
library(RSelenium) # 为了使用JavaScript进行网页抓取
###############连接Server并打开浏览器############################
remDr