jar 工程我怎么在网页上url访问某一个方法_Rseleium 爬取动态网页

最近因为有爬取动态网页的需要,但是不熟悉python,因此研究了一下R进行动态网页爬取。总结下来,主要困难还是在环境的配置,因为关于R的资料较少,因此不是很方便。

一般的静态网页,我们可以用rvest爬取,但是这种动态网页,用rvest只能爬取一个空白出来。

动态页面和静态页面最主要的区别就是当数据刷新的时候用了ajax技术,刷新时从数据库查询数据并重新渲染到前端页面,数据都存储在网络包中,爬取HTML是获取不到数据的
爬虫抓取静态网页和动态网页

首先我试了Rwebdriver包,参考:https://zhuanlan.zhihu.com/p/28108329

但是这个包无论怎么安装(devtools,本地加载),均不能成功。然后查了一下原因,看到这个包是2015-2016年的,且之后一直未更新;使用这个包的相关文章,也集中在17年左右。个人猜测是因为长时间不更新,导致和现有的R版本不兼容(本文R版本为3.6.2 (2019-12-12))。配置了很长时间,最后无奈放弃。

3a0065f053072bbe6a3bf8ab237e706a.png

之后开始再次寻找R上面的爬虫,找到

  1. 无头浏览器方法。 圆子:R爬取动态网站
  2. Rseleium包
  3. Rcrawler包(全自动下载网页,但所需时间过长,因此被我放弃)

最后看下来,兼顾方便和效率,选择Rseleium进行爬取。

几个参考的资料:

https://blog.csdn.net/LEEBELOVED/article/details/89461304

windows下配置RSelenium及Selenium环境

selenium server运行时候报错---“端口被占用”,Windows平台如何查看端口占用情况


下面说说安装过程,其实主要是安装环境的搭建。

1、首先建议下载firefox浏览器,下载最新版本的。

2、firefox浏览器安装后需要将其安装路径加到系统环境变量。

参考:R语言RSelenium包爬取动态网页数据前期准备(环境配置)-连载NO.01_人工智能_STAY HUNGRY STAY FOOLISH-CSDN博客

windows系统如何设置添加环境变量-百度经验

3、java环境配置。注:我的电脑好像自己带有java jdk,大家可以检查一下自己的电脑有没有

参考:R语言RSelenium包爬取动态网页数据前期准备(环境配置)-连载NO.01_人工智能_STAY HUNGRY STAY FOOLISH-CSDN博客

4、seleium配置

去seleium官网(Downloads)或者找找镜像下载,然后选择最新版本的selenium-server-standalone-3.141.59.jar。下载,保存到电脑上。建议保存到C盘,自己建一个文件夹(我的是C:Seleium)

7bd6ac99cba57917e7a0a872a6b8b18e.png

6c4fc65c335ff37c83f7eb3338288a9a.png
只需要最新的3.141.59.jar。其它都不需要

5、运行seleium。这步骤我弄了很久,原因是win 10的cmd命令行总是报错,如下:

C:Seleium>java -jar selenium-server-standalone-3.141.59.jar

9d6f4abb30863bbc187849abf12e7893.png

后来弄清楚之后,可能有2个原因,一个是cmd没有在管理员模式下运行(记得cmd之后要右击,选择管理员模式运行!!)

a75a78b9a7737be1edd2340e04f3f431.png

还有一个是路径问题,路径要设置成C:Seleium!!!

设置方法:用 “CD /D C:Seleium”,然后用java -jar selenium-server-standalone-3.141.59.jar运行我们的seleium(类似于一个插件)。

设置CMD默认路径 - 暮良文王 - 博客园

最后可以看到seleium成功了。

4cabeb24c65a23cfd51f3badd81a7d4d.png

还有一种方法:在保存文件夹下,按住shift,右击,出现,在此处打开pewershell窗口(有的人没有这个选项,百度解决方法)也同样运行java插件,应该也能看到成功了

有的人会出现端口4444 is busy,参考:

selenium server运行时候报错---“端口被占用”,Windows平台如何查看端口占用情况

9dad03e679ee6d00e95e73e541c17c3f.png

6、R配置和爬取程序

股票、基金、期货、美股、港股、外汇、黄金、债券行情系统

f979f0e6993bae24a424caca1eaf5673.png
# install.packages("Rseleium")
library(RCurl)# 抓取数据
library(XML)# 解析网页
librar(rvest)
library(RSelenium)

url_gp <- "http://quote.eastmoney.com/center/gridlist.html?st=ChangePercent&sortType=C&sortRule=-1#sh_a_board"
remdr <- remoteDriver(browserName ="firefox")
remdr$open()#打开firefox
remdr$navigate(url_gp)#打开url

m <- remdr$getPageSource()
webpage <- read_html(m[[1]][1])
data_temp <- html_table(webpage, fill = T)[[1]]#这里可以多选择几个基本上1,2,3,4都可以看看,表格就在这里

#data_temp即为我们的数据如下:

5984be2461b1a96960bb7b423f628023.png

至此,我们终于成功爬取了一个动态网页。其实最后面不难,麻烦的是java的各个版本,windows的环境配置,如果有dos的使用经验,可能会容易些。

ce5f2406567228c13a2852249b6d64f8.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值