网页数据抓取怎么写(【数据获取】爬虫利器Rvest包(JS渲染页面))
优采云 发布时间: 2022-03-11 17: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