因为平时经常写一些和爬虫相关的小项目,受 RabbitMQ 的启发,我将爬虫核心的部分单独做了一个项目。结合 RabbitMQ 后可以只部署一套爬虫服务,供各种其他服务使用,即节约了系统资源,又可以统一管理。
Aragog 分为服务端,客户端和 RabbitMQ 服务。多个服务端和多个客户端通过 AMQP 协议连接到 RabbitMQ 服务。系统扩展性很好,目前只做了一些基础的功能,欢迎试用和提 issue 。
这是我第一个真正意义上的开源项目,顺便求个星星鼓励下😁
服务端: https://github.com/crawlerlab/aragog
客户端: https://www.npmjs.com/package/aragog-client
特性
- 分布式架构: 使用 RabbitMQ 处理任务队列, 灵活的服务扩展和并发控制
- 双运行模式: 可使用普通 HTTP 请求或无头浏览器执行爬虫任务, 在性能和兼容性上取得平衡
- 多功能: 支持自定义用户脚本、POST 请求方式、HTTP 认证、设置请求头、获取响应头等功能
- 提供客户端: 提供 Node.js 客户端, 方便在其他项目中使用
- 服务端部署方便: 使用 Docker 方式进行部署, 一键安装