![15212dea905746ae9d90976e15b56bf6.png](https://i-blog.csdnimg.cn/blog_migrate/9659308a703a5927a43adfe9b870e3ac.jpeg)
本章目标:掌握RSelenium核心操作,可以用R自动化控制浏览器。
一、什么是RSelenium
RSelenium是一个R语言下的包,通过这个包,我们可以通过脚本控制浏览器进行浏览、点击、输入内容、解析数据等操作,实现R语言的自动化数据爬取。
二、打开RSelenium包
- 打开cmd启动Selenium Server(不要关闭)
java -Dwebdriver.chrome.driver="C:UserselemeDownloadschromedriver.exe" -jar C:UserselemeDownloadsselenium-server-standalone-3.0.1.jar
- Rstudio中调用RSelenium包
#打开RSelenium包
library(RSelenium)
- 建立远程驱动实例,我们可以通过这个实例进行各种网页操作
#建立远程驱动实例
remDr <- remoteDriver(
browserName = "chrome",
remoteServerAddr = "localhost",
port = 4444L
platform = "ANY"
)
三、R操作浏览器的方法
![87773488e63f97a2c96600d4beceddb4.png](https://i-blog.csdnimg.cn/blog_migrate/ff4d10f661ab88bd9d29e6a772fe1adf.jpeg)
四、R环境操作实例
#打开,关闭Session
remDr$open()
![89ad5c6d78c5211f94f21d7f3a2d646d.png](https://i-blog.csdnimg.cn/blog_migrate/1eef695a56ee202059c725a8b7d397dd.png)
#浏览网页
remDr$navigate('https://sh.lianjia.com/xiaoqu/')
![93780cdff7a75803946af6f4bdecbfb4.png](https://i-blog.csdnimg.cn/blog_migrate/7685c6ea4ca8207c76c3e9af2159bdd7.jpeg)
#后退,前进,刷新
remDr$goBack()
remDr$goForward()
remDr$refresh()
#抓取元素位置
xiaoqu_name_element <- remDr$findElement(using = "xpath", value = "/html/body/div[4]/div[1]/ul/li[1]/div[1]/div[1]/a")
#点击元素位置
xiaoqu_name_element$clickElement()
![a6f533545b5b14c954ca794489f1b0e8.png](https://i-blog.csdnimg.cn/blog_migrate/ae7c4cb00b49e2059fa0b08ddfd3d3d6.jpeg)
#输入文本、清空文本
input_element <- remDr$findElement(using = "xpath", value = '//input[@id="searchInput"]')
input_element$sendKeysToElement(list('上海',key='enter')) #注意文本以list类型输入,key = 'enter'表示输入内容后直接按回车键
input_element$clearElement() #表示清楚文本内容
![183248a7f6231100dd0c95fb02e62dbf.png](https://i-blog.csdnimg.cn/blog_migrate/6bdddd94d6551e7a8583687c34d7dc3a.jpeg)
#抓取元素值、抓取元素属性
xiaoqu_name_element <- remDr$findElement(using = "xpath", value = "/html/body/div[4]/div[1]/ul/li[1]/div[1]/div[1]/a")
xiaoqu_name_element$getElementText() 结果返回小区名称
xiaoqu_name_element$getElementAttribute('href')结果返回小区名称的href属性值(小区链接)
![5f23b1e7811d2966c4b0b13edc8811c4.png](https://i-blog.csdnimg.cn/blog_migrate/2da2c4e15d17f5010dc38402098be16a.png)
常用的RSelenium操作标签已经举例,其他操作可以参见官方文档RSelenium文档
本课完整代码:
#打开RSelenium包
library(RSelenium)
# 建立远程驱动实例
remDr <- remoteDriver(
browserName = "chrome",
remoteServerAddr = "localhost",
port = 4444L
platform = "ANY"
)
#打开,关闭Session
remDr$open()
#浏览网页
remDr$navigate('https://sh.lianjia.com/xiaoqu/')
#后退,前进,刷新
remDr$goBack()
remDr$goForward()
remDr$refresh()
#抓取元素位置
xiaoqu_name_element <- remDr$findElement(using = "xpath", value = "/html/body/div[4]/div[1]/ul/li[1]/div[1]/div[1]/a")
#点击元素位置
xiaoqu_name_element$clickElement()
#输入文本、清空文本
input_element <- remDr$findElement(using = "xpath", value = '//input[@id="searchInput"]')
input_element$sendKeysToElement(list('上海',key='enter')) #注意文本以list类型输入,key = 'enter'表示输入内容后直接按回车键
input_element$clearElement() #表示清楚文本内容
#抓取元素值、抓取元素属性
xiaoqu_name_element <- remDr$findElement(using = "xpath", value = "/html/body/div[4]/div[1]/ul/li[1]/div[1]/div[1]/a")
xiaoqu_name_element$getElementText() 结果返回小区名称
xiaoqu_name_element$getElementAttribute('href')结果返回小区名称的href属性值(小区链接)
数据采集课程:
有马骏:第0课:一个周末学会R语言数据采集:数据从哪里来?zhuanlan.zhihu.com![8fcb7edf04d765c983600b39b1f5b15d.png](https://i-blog.csdnimg.cn/blog_migrate/f61938c6b627c3885554eb5de8167db5.jpeg)
![e54a3d31095ba93ed2ccc7a024479c7d.png](https://i-blog.csdnimg.cn/blog_migrate/54533935d72fadd6c2c112ab4924ff69.jpeg)
![e54a3d31095ba93ed2ccc7a024479c7d.png](https://i-blog.csdnimg.cn/blog_migrate/54533935d72fadd6c2c112ab4924ff69.jpeg)
![e54a3d31095ba93ed2ccc7a024479c7d.png](https://i-blog.csdnimg.cn/blog_migrate/54533935d72fadd6c2c112ab4924ff69.jpeg)
![e54a3d31095ba93ed2ccc7a024479c7d.png](https://i-blog.csdnimg.cn/blog_migrate/54533935d72fadd6c2c112ab4924ff69.jpeg)
![e54a3d31095ba93ed2ccc7a024479c7d.png](https://i-blog.csdnimg.cn/blog_migrate/54533935d72fadd6c2c112ab4924ff69.jpeg)
![e54a3d31095ba93ed2ccc7a024479c7d.png](https://i-blog.csdnimg.cn/blog_migrate/54533935d72fadd6c2c112ab4924ff69.jpeg)
数据处理课程:
有马骏:第0课:一个周末学会R语言数据处理:从数据库到数仓再到数据集市zhuanlan.zhihu.com![15b972da69b383cb2931189ec5e343b6.png](https://i-blog.csdnimg.cn/blog_migrate/6d2fb6b120f512ff41680044fbef11b0.jpeg)
![15b972da69b383cb2931189ec5e343b6.png](https://i-blog.csdnimg.cn/blog_migrate/6d2fb6b120f512ff41680044fbef11b0.jpeg)
![15b972da69b383cb2931189ec5e343b6.png](https://i-blog.csdnimg.cn/blog_migrate/6d2fb6b120f512ff41680044fbef11b0.jpeg)