左手用R右手Python系列——动态网页抓取与selenium驱动浏览器

但是所有这些都是基于静态页面的(抓包与API访问的除外),很多动态网页不提供API访问,这样就只能寄希望于selenium这种基于浏览器驱动技术来完成。

好在R语言中已经有了selenium接口包——RSelenium包,这为我们爬取动态网页提供了可能。我在今年年初写过一个实习僧网站的爬虫,那个是使用R语言中另一个基于selenium驱动的接口包——Rwebdriver来完成的。

当时技术不太成熟,思路也比较幼稚,我使用了导航器硬生生的遍历了500页内容,虽然最后也爬完了所有数据,但是耗时较长(将近40分钟),效率比较低。(感兴趣的小伙伴儿可以参考下上面那篇,不过实习僧的官网近期有较大改版,现在爬取难度肯定要比当初难多了!那个代码可能无法使用了)

最近抽时间学习了下RSelenium包的相关内容,这里感谢陈堰平老师在R语言上海大会现场所做《用RSelenium打造灵活强大的网络爬虫》的演讲,虽然未达现场,但是有幸看完视频版,其中的几个细节解决了我近段时间的一些困惑,这里表示感谢。

陈堰平老师主讲:《用RSelenium打造灵活强大的网络爬虫》

http://www.xueqing.tv/course/88

一个老外关于RSelenium的入门视频(youtobe请自行翻墙):

https://www.youtube.com/watch?v=ic65SWRWrKA&feature=youtu.be

当前R语言中能做到解析动态网页的有以下几个包(欢迎补充):

RSelenium(推荐)

Rwebdriver(不很成熟)

seleniumpipes(结合RSelenium更高效)

rdom(高级封装,灵活性不够)

Rcrawler(支持多进程)

webshot(专门用于动态网页截图)

本节以下内容正式分享今日案例,目标是拉勾网(不要问为什么,因为之前我还没有爬过拉钩)!

在介绍案例之前,请确保系统具备以下条件:

本地有selenium服务器并添加系统路径;

本地有plantomjs浏览器并添加系统路径;

安装了RSelenium包。

因为涉及到自动化点击操作,Chrome浏览器倒腾一下午硬是在点击环节出故障,找到了原因,因为拉勾网页面很长,而下一页按钮不在默认视窗范围内,使用了js脚本控制滑动条失败,原因不明,看到有人用firefox浏览器测试成功,我还没有试过,这里改用plantomjs无头浏览器(无需考虑元素是否被窗口遮挡的问题。)

R语言版:

启动服务

构建自动化抓取函数:

运行抓取函数

Python:

启动服务

构建抓取函数

运行抓取程序

本文来自企鹅号 - 数据小魔方媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏python开发者

Ubuntu Desktop基本办公环境搭建

Ubuntu Desktop基本办公环境搭建 一如前面所强调的, linux系统是面向开发人员友好的,而对office办公人员并不友好 。 如果是重度的offi...

1986
来自专栏北京马哥教育

11个你可能不知道的Python库

现在有如此之多的Python包,几乎没有人能够全盘掌握。 光是PyPI就可单独列出47,000个包! 近日,听到很多数据科学家切换到Python的消息,我不由地...

3435
来自专栏Python中文社区

Python数据采集Selenium、PantomJS浅谈

專 欄 ❈ yea yee,Python中文社区专栏作者,python三年,独立开发者,擅长flask,mongodb,pandas,bokeh,熟悉skle...

1936
来自专栏FreeBuf

黑客可利用PDF文件获取Windows凭据

Check Point安全研究员Assaf Baharav透露,PDF文件可以被恶意行为者武装化,以窃取Windows凭证(NTLM hashes)而无需任何用...

1223
来自专栏phodal

操作系统Emacs是如何沦落为一代编辑器的?

(本文根据史实改编,如有雷同纯属巧合) 我正在用Emacs替换IDE和Sublime Text,至于理由看另外一篇文章《Emacs是最好的编辑器~~》。 开始之...

2338
来自专栏FreeBuf

低成本玩转硬件安全(一) | BadUSB on Arduino

引言 鉴于硬件安全对于大多数新人是较少接触的,而这方面又非常吸引我,但是部分专业安全研究设备较高的价格使人望而却步。在该系列中,笔者希望对此感兴趣的读者在花费较...

2378
来自专栏企鹅号快讯

6大爬虫利器,轻松搞定爬虫

工欲善其事必先利其器,Python之所以流行在于它有非常丰富的第三方包,无论是Web框架还是机器学习框架、抑或是爬虫框架,多得让人眼花缭乱,这给了开发者极大的选...

1816
来自专栏黑白安全

Burpsuite你可能不知道的技巧

一年一度的Burpsuite过期的时间又到了,Burpsuite作为Web安全者必不可少的一件神器,其实有很多实用的技巧,本篇文章的目的是抛砖引玉,通过分享一些...

835
来自专栏逍遥剑客的游戏开发

从Native到Web(五), emscripten学习笔记: 初体验

1323
来自专栏张戈的专栏

原创插件:WordPress读者排行榜插件WP Readers Ranking

貌似在上个月,我就和中国历史、梦轩丽人等几位博友提过,张戈博客分享的《WordPress 酷炫 CSS3 读者墙,排名按年度、本月、本周划分的小方法》,其实可以...

3148

扫码关注云+社区