vc++在webbrowser中模拟点击网页链接_RSelenium动态网页抓取

[编者按:周末把动态网页抓取当作一个Project来做,现攻克?️差不多了,特此记之,以飨观众]

动态网页是跟静态网页相对,特指网页的内容动态生成,比如需要在浏览器中滑动鼠标、或点击方向箭头才能看到新的东西,或者网页呈现的东西都是服务器即时生成。这些动态的内容一般通过在html文件中插入Java代码实现(至于为啥是Java,听说背后有故事,然后Java要收费了)。

今天我要涉及的动态网页主要有两个,一个是百度,另一个是非常random(河北省三甲医院大全:https://m.yyk.99.com.cn/sanjia/hebei/)。百度是常见的动态网页,因为我们输入关键词搜索后得到的结果全部依赖于Java,而第二个网页要浏览完75家医院需要鼠标滑动四次,背后同样是Java的功劳。动态网页如果用静态网页抓取的方法估计什么也抓取不到(或者抓取不全),原因是动态网页结果的显示需要借助浏览器(有时需要人和鼠标的操作)。如果想用R进行动态网页内容抓取需经过浏览器操作才能看到全部内容。所以问题的关键在于如何让R命令浏览器做事,先让浏览器把Java控制的内容部分渲染出来,然后再对结果进行内容抓取。

如何让R命令浏览器呢?目前市面上通行的方法是构造一个虚拟的服务器Selenium Server,然后让R能跟Selenium对话。Selenium是一个用于网页测试的Java开源软件,可以模拟浏览器的点击、滚动、滑动以及文字输入等操作。为了让测试环境更加纯粹、干净,我们最好在docker里进行上述测试,而docker类似一个轻量级的虚拟光驱或者镜像,可以包含测试过程中需要用到的其它软件,其中关键是Selenium测试的对象,即某个浏览器(本文采用Chrome)。

在进行动态网页抓取之前,需要做很多准备工作,大体如前一段所描述那样:

0. 确保电脑支持Java (如Mac的JDK)

1. 安装Selenium Server(模拟浏览器的点击、滚动、滑动以及文字输入等)

   下载地址:

https://docs.seleniumhq.org/download/

   下载完安装命令(terminal里运行)

java -jar selenium-server-standalone-3.141.59.jar  (注意版本号)

    Vignette可以查看: 

https://rpubs.com/johndharrison/RSelenium-Basics

2. 安装d

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值