RSelenium环境配置之非码农版

最近喜欢上了爬虫,所以特别想折腾下关于爬虫的事情。

但是个人是R的重度用户,对python之流完全无法直视,主要是因为自己实在愚笨,学不会python,所以重点还是放在R上面。

在R上面一般用得比较多的是rvest,这个是一种很简单的R下的爬虫框架,大多数人都拿它来爬虫极其简单的html页面,网上的介绍比较多,比如R语言爬虫初尝试-基于RVEST包学习【数据获取】爬虫利器Rvest包等等,实在太多了,各位玩家如果有兴趣,可以自行去Bing一下。

另外一种R语言下的爬虫框架,大名鼎鼎的RCurlXML,这才是R语言下的爬虫框架利器,网上关于这两者搭配用于爬虫程序的介绍一大把,炼数成金曾经出了一个系列的关于RCurl以及XML联合用于爬虫的视频课程,可惜国内基本只能在免费的情况下看到第一集,曾经的youtube上有完整的该系列课程视频,在可以FQ的年代我没有珍惜,现在只剩无尽的后悔...

以下是我对油管的情怀

难道老外可以免费学习而中国人只能掏出自己的MM?

当然以上要么就是比较简单的rvest,要么就是强大而学不会的RCurl和XML,那么有没有相对来说更符合我们平常浏览网页的爬虫框架呢?答案当然是肯定的...感谢强大的selenium

说实在话,selenium最诱惑人的就是它能并且模拟浏览器的动作,网上有一大波,喔,不对,是一大把教程......

当然网上的教程绝大部分都是基于python的,对于我等R语言的用户来说,这真是只闻其好啊,不折腾岂不显得很无聊?

以上啪啦啪啦说了一大波,不对,一大堆废话,还是说说R语言如何配置selenium吧。





为了显示本人理科男的特质,还是按照one,two,three...的模式来吧:

1. selenium已经进化到第三代,也就是通俗地叫作为selenium3,所以不是selenium1(这个得搭配webdriver),也不是selenium2(这货就是selenium1+webdriver)

2. selenium原生支持的浏览器是firefox,注意不是chrome (当然国内用户是没资格用这货的,毕竟被墙的东西),不是ieedge...这些东西后面还有得说

3. 很多牛逼的码农们,都极其鄙视windows系统,所以本人肯定属于被鄙视的,不过咱就一消费者,还怕鄙视么?qie...真心不好找selenium在windows下的配置方法,更不要说selenium在windows系统下在R语言中的配置了,但是咱不是有迎难而上的好气质么?本文只涉及windows系统,R语言,firefox浏览器,selenium3

4. Rselenium是一个好package,虽然说好的是selenium2,但是在selenium3下运行良好,关于Rselenium的入门和相关技术文档,请参看CRAN上的相关介绍

5. 要运行selenium,首先就得要一个selenium server,要成功运行一个selenium server,有两种方法:创建一个docker,运行类似于selenium-server-standalone-x.xx.x.jar这样的文件,docker其实类似于虚拟机(不对的话勿喷),在我的电脑上没有配置成功,而且下载浪费了无数的时间(差不多7-8个小时吧),那么唯一可以让我选择的就是最简单的运行selenium-server-standalone-x.xx.x.jar二进制文件

6. 虽然这些jar文件都托管在google上,不知为啥,国内用户还能顺利下载,至少本人没遇到问题

7. 下载上面的文件后(本人选择的是3.6.0版本),随意放在一个自定义的目录下,本人的目录是:C:\Selenium server standalone

8. shell下运行cmd命令,进到上述目录下,直接运行:java -jar selenium-server-standalone-x.xx.x.jar,啪啦啪啦出现一大串让人眼晕的代码


里面好像有好多错误啊...到底管不管呢?lz的英语能力有限,先不管了...其实这个跟selenium2以及selenium1运行成功的界面好像确实不一样了,唯一让人眼前一亮的就是最后的那句:Selenium Server is up and running

9. 注意保持这个界面运行,不要关闭之

10. 进入Rstudio,在你已经install了RSeleniun的情况下,直接   library(RSelenium),然后按照CRAN上的简要介绍开始一下

11. 你肯定会遇到各种错误的,第一个可能出现的 错误见下图


这啥玩意儿啊...?

其实selenium的错误报警真的很良心,copy这个错误,可以直接Bing它,更直接的做法是:直接复制这段错误中的两个链接,github或者releases,下载最新的geckodriver吧。因为本文只涉及firefox,所以这里也只讲到firefox的对应问题

简单解释下:

因为我们用的浏览器是firefox55,所以要用到geckodriver,更低版本的firefox怎么办?网上的答案很多,简单来说就是更低版本的firefox最好搭配selenium2,而不是selenium3,那么到底多低的firefox版本呢?没有测试,没有发言权

请仔细看看geckodriver的说明

12. 当我们安装了geckodriver之后,在你继续RSelenium的开胃菜之时,你可能会发现你运行成功了,然后...然后又出现下面的错误了


WHAT THE FUCK?

然后你又Bing...看了特么的一大堆英文之后,懵逼了...

为什么会报这个错误?怎么解决?

因为geckodriver必须放在跟firefox.exe同一个目录下,而且必须在windows的环境变量中配置它,见下图


切记:geckodriver.exe必须和firefox.exe放在同一目录下,当然你没得选,只能把geckodriver.exe放在firefox.exe的安装目录下,并且再次切记:在windows中系统环境变量中配置它,不知怎么配置环境变量?Bing!

13. 然后...然后我们可以开始愉快的selenium了


remoteDriver()创建一个server对象,然后把这个对象open(),会打开新的firefox窗口,然后开始你的selenium之旅吧

那么我们的shell窗口呢?

在你啪啦啪啦的selenium之旅时,那个shell窗口当然没闲着,它会随着你执行的每一步Debug...一大堆我等看不懂的东西出来,切记之三:不要在运行selenium的时候关闭它

说在最后:

selenium之所以很爽,是因为它相当于模拟了一个浏览器,不再像我们使用rvest或者rcurl的时候等同于盲操

当然selenium更简单,对付动态页面等等更直观

有人更用selenium来实现了变态验证,有兴趣可以看看去,思路很好

另外python中关于selenium的介绍更多,可以拿来作为R的参考

对于非码农来说,写这么一篇文章真是折磨呀

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,045评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,114评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,120评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,902评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,828评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,132评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,590评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,258评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,408评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,335评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,385评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,068评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,660评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,747评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,967评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,406评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,970评论 2 341

推荐阅读更多精彩内容