java回车后自动从一个文本框切换到另一个_第4课:一个周末学会R语言数据采集: Selenium常用操作...

本文介绍了如何使用R语言中的RSelenium包来自动化控制浏览器,包括开启远程驱动、浏览网页、元素交互、数据抓取等操作。通过示例代码展示了如打开浏览器、导航、点击、输入、抓取页面元素信息等基本功能,帮助读者掌握RSelenium在数据爬取中的应用。
摘要由CSDN通过智能技术生成

15212dea905746ae9d90976e15b56bf6.png

本章目标:掌握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

四、R环境操作实例

#打开,关闭Session
remDr$open()

89ad5c6d78c5211f94f21d7f3a2d646d.png
chrome显示正在受自动测试软件控制
#浏览网页
remDr$navigate('https://sh.lianjia.com/xiaoqu/')

93780cdff7a75803946af6f4bdecbfb4.png
navigate网页后显示页面
#后退,前进,刷新
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
clickElement后,浏览器打开了上海康城的网站
#输入文本、清空文本
input_element <- remDr$findElement(using = "xpath", value = '//input[@id="searchInput"]')
input_element$sendKeysToElement(list('上海',key='enter')) #注意文本以list类型输入,key = 'enter'表示输入内容后直接按回车键
input_element$clearElement() #表示清楚文本内容

183248a7f6231100dd0c95fb02e62dbf.png
通过sendKeysToElement方法将“上海”传入文本框
#抓取元素值、抓取元素属性
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
分别返回了元素值以及元素的href属性值

常用的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
有马骏:第1课:一个周末学会R语言数据采集:爬虫介绍​zhuanlan.zhihu.com
e54a3d31095ba93ed2ccc7a024479c7d.png
有马骏:第2课:一个周末学会R语言数据采集:R爬虫环境安装​zhuanlan.zhihu.com
e54a3d31095ba93ed2ccc7a024479c7d.png
有马骏:第3课:一个周末学会R语言数据采集:XPath基础​zhuanlan.zhihu.com
e54a3d31095ba93ed2ccc7a024479c7d.png
有马骏:第4课:一个周末学会R语言数据采集: Selenium常用操作​zhuanlan.zhihu.com
e54a3d31095ba93ed2ccc7a024479c7d.png
有马骏:第5课:一个周末学会R语言数据采集:正则表达式入门​zhuanlan.zhihu.com
e54a3d31095ba93ed2ccc7a024479c7d.png
有马骏:第6课:一个周末学会R语言数据采集:爬取链家小区数据​zhuanlan.zhihu.com
e54a3d31095ba93ed2ccc7a024479c7d.png

数据处理课程:

有马骏:第0课:一个周末学会R语言数据处理:从数据库到数仓再到数据集市​zhuanlan.zhihu.com
15b972da69b383cb2931189ec5e343b6.png
有马骏:第1课:一个周末学会R语言数据处理:表快速读取​zhuanlan.zhihu.com
15b972da69b383cb2931189ec5e343b6.png
有马骏:第2课:一个周末学会R语言数据处理:表拆分和拼接​zhuanlan.zhihu.com
15b972da69b383cb2931189ec5e343b6.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值