有关爬虫的一些记录和思考之一爬虫端

很长一段时间,由于工作需要,常常需要在几百台VPS上面部署爬虫程序,也是时候对这些用到的技术做一些总结和分享,考虑到敏感性,不会涉及代码

爬虫端

过时的PhantomJS

翻看以前使用的老爬虫程序,会看到很多和PhantomJS相关的代码,为什么PhantomJS会较广泛的应用于爬虫,以及为什么现如今已经过时了呢?

PhantomJS作为比较富盛名的WebKit API,具体说明和文档可以参考PhantomJS

简单来说,按照官网的说法,PhantomJS是一个无界面的,可脚本编程的WebKit浏览器引擎。它原生支持多种web 标准:DOM 操作,CSS选择器,JSON,Canvas 以及SVG。
所以如果我们并非简单爬取html,而是需要获取JS渲染的页面,亦或是需要进行一些登录操作,是可以采用PhantomJS,同时也很好支持自动化测试。

为什么说它已经过时了呢,因为PhantomJS目前最新版本是2.1.1,发布时间是2016年3月份(#-.-),所以新版的浏览器不是很兼容PhantomJS,开发者在使用中可能会遇到很多问题,而且Selenium也不再支持PhantomJS。

经常需要自动化测试或者使用爬虫的小伙伴应该知道Selenium,需要模拟用户操作浏览器或者针对一些反爬厉害的网站时,通常都是使用Selenium,原理大致就是每一条Selenium脚本,都会创建一个HTTP请求,发送给浏览器驱动,驱动中的HTTP Server接受到请求之后,操控对应浏览器执行脚本步骤,浏览器会将执行结果返回给HTTP Server,HTTP Server再返回给Selenium脚本

新生代主流Puppeteer

我想很多人应该在Puppeteer发布的时候,就成了它的忠实用户

Puppeteer是Google Chrome 团队官方的无界面Headless Chrome工具,下载地址Puppeteer

Puppeteer是基于node开发,所以需要搭配Node运行环境,至少是v6.4.0以上,并且安装时会下载最新版本的 Chromium,根据官方的描述,Puppeteer可以做到以下功能:

  • 生成页面的截图和PDF
  • 抓取SPA(通过多方渲染生成最终页面的单页应用)
  • 从网站抓取你需要的内容。
  • 自动表单提交,UI测试,键盘输入等
  • 创建一个最新的自动化测试环境。使用最新的JavaScript和浏览器功能,直接在最新版本的Chrome中运行测试。
  • 捕获您的网站的时间线跟踪,以帮助诊断性能问题。

是不是连Selenium都不用了,手动操作浏览器的大部分操作都可以使用Puppeteer来完成,为了更好的支持Puppeteer,所以爬虫端一般也都是使用node.js来开发),结合我自己的使用和开发来看,node的项目有几个点值得说一下:

  • JavaScript的编程语言,门槛较低,前端人员也能进行后台开发,是的,前后端语言互通
  • 具有非阻塞的io模式,处理高并发场景性能更高,并且在机器性能较低的情况下也能拥有高性能和出色的负载
  • 非常便利的异步驱动
  • 广受诟病的单进程,单线程已经在高版本(V8和以上)的node中得到解决
  • 同时也由于Js的灵活性(大量函数式编程、匿名函数),所以不容易看懂别人写的代码,造成后期维护上的不便利

有关爬虫端的东西就暂时写到这,后续我会补充其他部分,爬虫的任务分发、html解析都值得记录。

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

推荐阅读更多精彩内容

  • 现状 好久好久没有更新博客了,应该有一个月了吧,这段时间内,好忙,公司的业务在上涨期,但是却把下面的一个小朋友砍掉...
    jb2阅读 1,288评论 0 2
  • 前言 离上一篇更新的博文应该过了挺久的了(python爬虫(上)–请求——关于旅游网站的酒店评论爬取(传参方法))...
    Mrhyden阅读 501评论 0 0
  • 1.puppeteer简介 puppeteer是一个node库,是Google chrome团队官方的无界面(he...
    伊人风采_690d阅读 7,606评论 0 11
  • 再见 最近几天没有写教程,但是一直在翻资料。 在昨天,我翻到了一条消息:PhantomJS宣布暂停开发。 最初我是...
    MonkeyLei阅读 198评论 0 0
  • 这个星期一,我们班举行了一个难忘又有趣的班会课。 经过老师的安排,我们班第一节班会课由班长和课代表以感...
    蔡玲珑阅读 1,390评论 0 1