摘要:前言开发爬虫是一件有趣的事情。的可配置爬虫是基于的,因此天生是支持并发的。的可配置爬虫降低了爬虫的开发时间,增加了爬虫开发效率,完善了工程化水平,将爬虫工程师从日常的繁琐配置工作中解放出来。
前言开发爬虫是一件有趣的事情。写一个程序,对感兴趣的目标网站发起HTTP请求,获取HTML,解析HTML,提取数据,将数据保存到数据库或者存为CSV、JSON等格式,再用自己熟悉的语言例如Python对这些数据进行分析生成酷炫的图表。这个过程是不是很兴奋?
然而,开发爬虫并不是一件简单的事情。通常开发一个简单爬虫往往需要编写好几个模块:下载器、解析器、提取规则、保存模块。实现这个简单爬虫用Python实现至少需要编写10-20行代码,而且如果考虑并发和调度的话,通常要编写50行代码以上。更麻烦的是,如果要管理多个爬虫实现爬虫的工程化,需要对各个网站的爬虫代码提取共用模块和参数,这个过程需要相当的工程经验和时间积累。其实,一般各大网站的结构大同小异,仅需要更改提取规则即可。很多爬虫工程师要在大型项目中编写成百上千的提取规则,对于没有任何管理工具的人来说,这基本上是个噩梦。
可配置爬虫幸运的是,Crawlab在版本v0.2.1中新增功能可配置爬虫可以让工程师从这些重复性工作中解放开来。Crawlab的可配置爬虫只需要爬虫工程师配置一些必要的CSS/XPath提取规则,就可以完成一个常规的爬虫开发。根据作者实验,对于CSS选择器或XPath稍微熟悉点的工程师,用可配置爬虫开发完一个包含五脏俱全的常规爬虫只需要1-3分钟。
Crawlab的可配置爬虫是基于Scrapy的,因此天生是支持并发的。而且,可配置爬虫完全支持Crawlab自定义爬虫的一般功能的,因此也支持任务调度、任务监控、日志监控、数据分析。
安装运行CrawlabCrawlab是一个专注于爬虫的集成了爬虫管理、任务调度、任务监控、数据分析等模块的分布式爬虫管理平台,非常适合对爬虫管理、爬虫工程化有要求的开发者及企业。
关于Crawlab的详细介绍请参考之前的文章:
爬虫平台Crawlab v0.2发布
手把手教你如何用Crawlab构建技术文章聚合平台(二)
手把手教你如何用Crawlab构建技术文章聚合平台(一)
分布式通用爬虫管理平台Crawlab
以下是Crawlab的安装和运行步骤,时间大概在10-20分钟。
安装步骤 运行步骤 如何开发并运行可配置爬虫下面总算到了爬虫开发时间。这里将以网易24小时排行新闻为例,开发一个相应的可配置爬虫,整个流程应该不超过3分钟。
添加爬虫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的使用和开发。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/7842.html
摘要:前言开发爬虫是一件有趣的事情。的可配置爬虫是基于的,因此天生是支持并发的。遵守协议这个默认是开启的。的可配置爬虫降低了爬虫的开发时间,增加了爬虫开发效率,完善了工程化水平,将爬虫工程师从日常的繁琐配置工作中解放出来。 前言 开发爬虫是一件有趣的事情。写一个程序,对感兴趣的目标网站发起HTTP请求,获取HTML,解析HTML,提取数据,将数据保存到数据库或者存为CSV、JSON等格式,再...
摘要:从今天起,我将在这里更新一个系列的简单爬虫到建立网站的实践手记。内容将会从最简单的开始,环境搭建,基本爬虫,入库,用建立可供用户访问的网站,网站部署。第一部分,买,装环境。我们爬虫站点的所有文件都放在里面。 从今天起,我将在这里更新一个系列的python简单爬虫到建立网站的实践手记。 内容将会从最简单的开始,环境搭建,基本爬虫,入库,用Django建立可供用户访问的网站,网站部署。 ...
摘要:是什么呀是一个和不太一样的数据库。怀疑是同时联了四个集合的数据造成的。这本书的定位是和的应用,所以有意弱化了数据库的搭建维护和底层优化。所以本书可能不适合数据库工程师。 这篇文章没有代码,请放心阅读。 程序员最宝贵的东西是生命,生命属于程序员只有一次。一个程序员的一生应该这样度过:当她回首往事的时候,她不会因为搭建环境浪费时间而悔恨,也不会因为集群无法运行而羞耻。这样,在她开发的时候,...
摘要:是什么呀是一个和不太一样的数据库。怀疑是同时联了四个集合的数据造成的。这本书的定位是和的应用,所以有意弱化了数据库的搭建维护和底层优化。所以本书可能不适合数据库工程师。 这篇文章没有代码,请放心阅读。 程序员最宝贵的东西是生命,生命属于程序员只有一次。一个程序员的一生应该这样度过:当她回首往事的时候,她不会因为搭建环境浪费时间而悔恨,也不会因为集群无法运行而羞耻。这样,在她开发的时候,...
摘要:接上回第二部分,编写爬虫。进入微信嵌套选择图片和上传图片接口,实现一键上传图片,遇到问题看吧,我现在已经可以通过爬虫获取的提问标题了。微信故意省略想做小偷站的,看到这里基本上就能搞出来了。下一篇,采集入库 上回,我装了环境 也就是一对乱七八糟的东西 装了pip,用pip装了virtualenv,建立了一个virtualenv,在这个virtualenv里面,装了Django,创建了一个...
阅读 2878·2021-11-24 09:39
阅读 3129·2021-11-19 10:00
阅读 1535·2021-10-27 14:17
阅读 1811·2021-10-14 09:43
阅读 960·2021-09-03 10:30
阅读 3412·2019-08-30 15:54
阅读 2728·2019-08-30 13:05
阅读 2005·2019-08-30 11:02