⚠注意: 可配置爬虫如今仅在Python版本(v0.2.1-v0.2.4)可用,在最新版本Golang版本(v0.3.0)还暂时不可用,后续会加上,请关注近期更新git
开发爬虫是一件有趣的事情。写一个程序,对感兴趣的目标网站发起HTTP请求,获取HTML,解析HTML,提取数据,将数据保存到数据库或者存为CSV、JSON等格式,再用本身熟悉的语言例如Python对这些数据进行分析生成酷炫的图表。这个过程是否是很兴奋?github
然而,开发爬虫并非一件简单的事情。一般开发一个简单爬虫每每须要编写好几个模块:下载器、解析器、提取规则、保存模块。实现这个简单爬虫用Python实现至少须要编写10-20行代码,并且若是考虑并发和调度的话,一般要编写50行代码以上。更麻烦的是,若是要管理多个爬虫实现爬虫的工程化,须要对各个网站的爬虫代码提取共用模块和参数,这个过程须要至关的工程经验和时间积累。其实,通常各大网站的结构大同小异,仅须要更改提取规则便可。不少爬虫工程师要在大型项目中编写成百上千的提取规则,对于没有任何管理工具的人来讲,这基本上是个噩梦。数据库
幸运的是,Crawlab在版本v0.2.1中新增功能可配置爬虫可让工程师从这些重复性工做中解放开来。Crawlab的可配置爬虫只须要爬虫工程师配置一些必要的CSS/XPath提取规则,就能够完成一个常规的爬虫开发。根据做者实验,对于CSS选择器或XPath稍微熟悉点的工程师,用可配置爬虫开发完一个包含五脏俱全的常规爬虫只须要1-3分钟。浏览器
Crawlab的可配置爬虫是基于Scrapy的,所以天生是支持并发的。并且,可配置爬虫彻底支持Crawlab自定义爬虫的通常功能的,所以也支持任务调度、任务监控、日志监控、数据分析。微信
Crawlab是一个专一于爬虫的集成了爬虫管理、任务调度、任务监控、数据分析等模块的分布式爬虫管理平台,很是适合对爬虫管理、爬虫工程化有要求的开发者及企业。并发
关于Crawlab的详细介绍请参考以前的文章:分布式
如下是Crawlab的安装和运行步骤,时间大概在10-20分钟。工具
下面总算到了爬虫开发时间。这里将以网易24小时排行新闻为例,开发一个相应的可配置爬虫,整个流程应该不超过3分钟。post
Crawlab跑起来以后,在浏览器中打开网址http://localhost:8080,导航到爬虫。在点击添加爬虫按钮。网站
点击可配置爬虫。
输入完基本信息,点击添加。
添加完成后,能够看到刚刚添加的可配置爬虫出现了在最下方,点击查看进入到爬虫详情。
点击配置标签进入到配置页面。接下来,咱们须要对爬虫规则进行配置。
这里已经有一些配置好的初始输入项。咱们简单介绍一下各自的含义。
这也是爬虫抓取采用的策略,也就是爬虫遍历网页是如何进行的。做为第一个版本,咱们有仅列表、仅详情页、列表+详情页。
这里咱们选择列表+详情页。
列表项的匹和分页按钮的匹配查询,由CSS或XPath来进行匹配。
爬虫最开始遍历的网址。
这个默认是开启的。若是开启,爬虫将先抓取网站的robots.txt并判断页面是否可抓;不然,不会对此进行验证。用户能够选择将其关闭。请注意,任何无视Robots协议的行为都有法律风险。
这些都是再列表页或详情页中须要提取的字段。字段由CSS选择器或者XPath来匹配提取。能够选择文本或者属性。
在检查完目标网页的元素CSS选择器以后,咱们输入列表项选择器、开始URL、列表页/详情页等信息。注意勾选url为详情页URL。
点击保存、预览,查看预览内容。
OK,如今配置大功告成,终于可开始跑爬虫了!
你惟一须要作的,就是点击运行按钮并确认。点击概览标签,你能够看到任务已经开始运行了。
点击建立时间连接导航到任务详情,点击结果标签,你就能够看到抓取到的结果已经保存下来了。
怎么样,这个过程是否是超级简单?若是熟练的话,整个过程能够在60秒内完成!就跟玩魔方同样,越玩越熟练!
本文利用Crawlab的可配置爬虫功能实现了3分钟内对网易新闻24小时新闻排行榜的抓取。一样的过程能够实如今其余相似的网站上面。虽然这是一个经典的“列表+详情页”的抓取模式,比较简单,后续咱们还会开发更多的更复杂的抓取模式,实现更多的抓取需求。Crawlab的可配置爬虫下降了爬虫的开发时间,增长了爬虫开发效率,完善了工程化水平,将爬虫工程师从平常的繁琐配置工做中解放出来。配置工做能够交给初级爬虫工程师或者外包人员来作,而高级爬虫工程师会把精力放在更复杂的爬虫工做上来,例如反爬、动态内容、分布式爬虫等等。
Github: tikazyq/crawlab
若是感受Crawlab还不错,对你的平常工做或企业有帮助的话,请加做者微信拉入开发交流群,你们一块儿交流关于Crawlab的使用和开发。