天天看点

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

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

本章目标:掌握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操作浏览器的方法

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

四、R环境操作实例

#打开,关闭Session
remDr$open()
           
java回车后自动从一个文本框切换到另一个_第4课:一个周末学会R语言数据采集: Selenium常用操作...

chrome显示正在受自动测试软件控制

#浏览网页
remDr$navigate('https://sh.lianjia.com/xiaoqu/')
           
java回车后自动从一个文本框切换到另一个_第4课:一个周末学会R语言数据采集: Selenium常用操作...

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()
           
java回车后自动从一个文本框切换到另一个_第4课:一个周末学会R语言数据采集: Selenium常用操作...

clickElement后,浏览器打开了上海康城的网站

#输入文本、清空文本
input_element <- remDr$findElement(using = "xpath", value = '//input[@id="searchInput"]')
input_element$sendKeysToElement(list('上海',key='enter')) #注意文本以list类型输入,key = 'enter'表示输入内容后直接按回车键
input_element$clearElement() #表示清楚文本内容
           
java回车后自动从一个文本框切换到另一个_第4课:一个周末学会R语言数据采集: Selenium常用操作...

通过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属性值(小区链接)
           
java回车后自动从一个文本框切换到另一个_第4课:一个周末学会R语言数据采集: Selenium常用操作...

分别返回了元素值以及元素的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

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

有马骏:第1课:一个周末学会R语言数据采集:爬虫介绍​zhuanlan.zhihu.com

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

有马骏:第2课:一个周末学会R语言数据采集:R爬虫环境安装​zhuanlan.zhihu.com

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

有马骏:第3课:一个周末学会R语言数据采集:XPath基础​zhuanlan.zhihu.com

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

有马骏:第4课:一个周末学会R语言数据采集: Selenium常用操作​zhuanlan.zhihu.com

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

有马骏:第5课:一个周末学会R语言数据采集:正则表达式入门​zhuanlan.zhihu.com

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

有马骏:第6课:一个周末学会R语言数据采集:爬取链家小区数据​zhuanlan.zhihu.com

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

数据处理课程:

有马骏:第0课:一个周末学会R语言数据处理:从数据库到数仓再到数据集市​zhuanlan.zhihu.com

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

有马骏:第1课:一个周末学会R语言数据处理:表快速读取​zhuanlan.zhihu.com

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

有马骏:第2课:一个周末学会R语言数据处理:表拆分和拼接​zhuanlan.zhihu.com

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