当前位置: 首页 > Web前端 > vue.js

Crawlabv0.4.1发布(可配置爬虫)

时间:2023-03-31 20:42:26 vue.js

前言Crawlab是一个基于Golang的分布式爬虫管理平台,支持Python、NodeJS、Java、Go、PHP等多种编程语言和多种爬虫框架。相信已经了解Crawlab的同学应该都知道,Crawlab是一个爬虫管理平台。如果还不明白什么是爬虫管理平台,建议读者先阅读《如何快速搭建实用的爬虫管理平台》。简单来说,爬虫管理平台就是一个可以管理爬虫、执行和监控爬虫任务、可视化爬虫运行的平台。Crawlab作为一个灵活、强大的爬虫管理平台,自今年3月上线以来,得到了众多爬虫工程师和开发者的好评,也有不少用户在企业部署了Crawlab。现在Crawlab在Github上有3100颗星,在Dockerhub上有7100颗星。此外,Crawlab还收到了大量实际用户的反馈。Github上已经解决了122个问题,还有48个是开放的。除了Bug,还有很多建设性的建议,包括使用配置文件配置恐惧环境、爬虫任务数据导出、更好的文件管理等。为什么Crawlab深受用户欢迎?我们得出结论,Crawlab主要是解决爬虫工程师需要管理很多爬虫的痛点。一般爬虫工程师需要查看爬虫任务的运行状态,比如错误日志、时间等,Crawlab可以帮他们做这件事;另外,爬虫工程师也需要定时执行任务,而Crawlab正好有定时任务的功能;另外,Crawlab是用golang写的后端,稳定性方面比较强。通过调查用户对Crawlab的定位,我们发现用户任务Crawlab提供的最大价值是便捷,即Easiness。因此,在本次更新v0.4.1(严格来说是v0.4.0,但这个版本有bug)中,Crawlab又引入了另一大功能,可配置爬虫,可以进一步简化爬虫过程。下面我们重点说说。可配置爬虫简介如果你是Crawlab的早期用户,你可能已经对可配置爬虫这个词很熟悉了,因为我们在v0.2.1就开发了这样的功能(详见《我是如何在3分钟内开发完一个爬虫的》)。只是当时的版本还是很有限的。只支持很简单的配置,稳定性不高,实用性不强。后来在迁移到golang版本的时候去掉了。但是由于很多Crawlab用户都在询问可配置的爬虫,甚至有人在Github上提出了这样的增强问题,我们意识到这个需求仍然很普遍。因此,该功能在本次版本更新中被迁移回来。不过本次更新的可配置爬虫与v0.2.1版本有很大区别。虽然也是基于scrapy框架,但不同的是v0.4.1版本比老版本更强大,更通用。以下是此更新的可配置爬虫的屏幕截图。阶段(Stage)、字段(Field)配置流程图设置Spiderfile简单来说,可配置爬虫就是不用写代码就可以写的,只配置爬虫规则的爬虫。一个不复杂的列表+详情页的爬虫很容易。写的很快,大概1-5分钟就能写完。此外,Spiderfile是Crawlab开发的一种定义爬虫的新方式。它旨在使配置爬虫变得更容易。它类似于Dockerfile、docker-compose.yml、Jenkinsfile等,使用配置代码定义一系列操作,实现SpiderasCode。我们以后的开发会围绕Spiderfile展开,包括爬虫需要的库,爬虫的运行参数,爬虫的定时任务等等,都可以在Spiderfile中定义,我们的开发团队会在Spiderfile中逐步完善未来。可配置爬虫原理接下来介绍可配置爬虫的一些基本概念。下图展示了可配置爬虫中各个概念之间的关系。可配置爬虫包括以下元素:Spiderfile:类似于Dockerfile、Jenkinsfile、docker-compose.yml文件,是可配置爬虫的YAML格式的配置文件。爬取的阶段、字段、分页等都可以通过该文件进行配置;阶段(Stage):可以配置爬虫爬取的不同阶段。一个阶段通常对应一个分类页面的爬取过程。比如列表页是一个阶段,详情页是另一个阶段。在Scrapy中,对应不同的回调函数;在一个阶段可以定义列表选择器、分页选择器和字段定义;一个阶段可以定义下一阶段,而且只能定义一个阶段。Field:字段其实就是抓取数据的字段,比如title、URL、price、description等;字段提取规则可以在XPath页面和CSS中使用。Crawlab的可配置爬虫基于Scrapy,自然支持并发。而且可配置爬虫完全支持自定义爬虫的通用功能,因此也支持任务调度、任务监控、日志监控和数据分析。可配置原理是Crawlab的可配置爬虫会根据Spiderfile的配置规则生成scrapy代码,然后让它像自定义爬虫一样运行。从这个角度来看,可配置爬虫是一种特殊的自定义爬虫,其代码是通过翻译Spiderfile配置文件生成的。更新详情0.4.1(2019-12-13)Features/EnhancementSpiderfile优化。阶段从字典更改为数组。#358百度同济更新。Bug修复无法显示计划任务。#353重复的节点注册。#3340.4.0(2019-12-06)功能/增强可配置蜘蛛。允许用户使用Spiderfile添加爬虫配置爬虫规则。执行方式。允许用户选择3种任务执行模式:AllNodes、SelectedNodes和Random.BugFixesTask意外终止。#306Documentation301#301Direct部署与Windows不兼容。#288日志文件丢失。#269TODO/Roadmap[]结果展示:支持JSON数据展示[]交互性:任务列表和爬虫列表支持过滤排序[]用户管理:配置是否允许用户注册;添加、删除、修改用户[]文件管理:添加、保存、删除、重命名文件[]定时任务:前端生成cron;与Linux一致;爬虫详情显示定时任务[]服务器:使用Nginx转发设置CRAWLAB_API_ADDRESS默认IP[x]免责声明[]CrawlabSDK[]Crawlab插件社区如果您认为Crawlab对您的日常开发或公司有帮助,请加作者微信tikazyq1并注明“Crawlab”,作者会拉你入群。欢迎在Github上Stars,如果遇到什么问题,欢迎在Github上提issue。此外,欢迎您为Crawlab做出开发贡献。