jarviscrawlercore

jarvis crawler core

Usage no npm install needed!

<script type="module">
  import jarviscrawlercore from 'https://cdn.skypack.dev/jarviscrawlercore';
</script>

README

Jarvis Crawler Core

JarvisCrawlerCore 是一套分布式 爬虫服务框架 / 页面编程机器人 。

它可以用于构建一套数据爬取集群,也可以用于Web项目的自动化测试,或用于其它机器人操作web项目的子服务。
它用于多个机器人项目,包括群内自动翻译机器人、新闻推送频道、动漫影视资源推送频道、后台数据监控系统、页面分析、行业数据抓取等。

我们仅在前期测试使用命令行,主要维护grpc服务模式。

建议用docker部署,多节点并行获取数据,目前仅有golang客户端(jccclient)可以提供基本的任务分派。

如果需要多节点的统一运维,可以使用Jarvis。

机器配置要求,建议使用linux,能装docker。
内存2g及以上(1g内存也可以用,不要一次请求太多任务,chrome内存占用较严重,每隔一段时间重启服务会有好处,我们也有个翻译服务数月不重启的)。

安装

这里 是一个可以直接用于部署的脚本项目。

下面的命令可以直接使用DockerHub源部署。

docker push zerrozhao/jarviscrawlercore:latest

需要修改配置文件,service.yaml,建议放在 cfg 目录下。

servAddr: 0.0.0.0:7051
headless: true

slowMo: 10

clientToken:
  - wzDkh9h2fhfUVuS9jZ8uVbhV3vC5AWX3

其中,clientToken,是用来校验权限的,可以配置多个,每次响应请求都会校验token,一个token可以提供给多个客户端使用。

node.js Client 开发

nodejs调用的例子,见src/service/client2.js

可以通过 npm 安装依赖,即可使用。

npm i jarviscrawlercore --save

这里还有一个直接用 jarviscrawlercore 项目来打包漫画的项目,这里

Golang Client 开发

使用 jccclient 即可。

更新说明

v0.6
  • 调整protos结构
  • 配合Charles线上部署
  • 逐步开放API服务
  • 配合jccclient实现更高效的抓取工作
  • 支持更多的网站
v0.5
  • 重构新闻功能
  • 漫画下载
  • 图片打包
  • 支持更多的网站
v0.3
  • 代码结构调整
  • 支持移动设备网页抓取
  • 支持直接attach到已存在的chrome
  • 发布到dockerhub
  • 支持更多的网站
v0.2
  • 极大的提升了节点的稳定性
  • 支持更多类型的网页抓取
  • 支持多节点(需要配合jccclient)
  • 支持更多的网站
v0.1
  • 支持新闻抓取
  • 支持grpc服务
  • 支持翻译