Union of hero bots.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
filesite 659f2ebb11 bug fix: task status update failed after data saved 10 months ago
conf add complete task auto notify cronjob, v0.1 done 10 months ago
test add herBot sdk for bots 10 months ago
.gitignore add npm proxy doc 1 year ago
LICENSE Initial commit 1 year ago
README.md add complete task auto notify cronjob, v0.1 done 10 months ago
common.mjs add herBot sdk for bots 10 months ago
heroBot.mjs add herBot sdk for bots 10 months ago
heroUnion.mjs bug fix: task status update failed after data saved 10 months ago
index.mjs add complete task auto notify cronjob, v0.1 done 10 months ago
package.json test case update 10 months ago
router_api.mjs api savetask done, add cronjob to auto clean expired tasks 10 months ago

README.md

Hero Union - 英雄联盟

Union of hero bots,一个Hero的爬虫联盟。

Hero Union主要做两件事:

  • 加入联盟的爬虫定期到联盟领取网页抓取任务,并将任务结果回传
  • 对外提供提交网页抓取任务和获取任务结果的接口供联盟成员使用,并支持任务完成回调通知

本文档目录

Hero Union 英雄联盟使用流程

联盟成员使用流程

  1. 调用接口向联盟提交网页抓取任务
  2. 任务完成时联盟会主动通知回传任务结果
  3. 也可以调用接口查询任务结果

联盟的爬虫工作流程

  1. 本地启动爬虫后,定期向联盟上报爬虫状态
  2. 爬虫定期从联盟领取新的网页抓取任务
  3. 爬虫完成网页抓取任务时调用接口上报给联盟

Hero Union 联盟接口

Hero Union联盟网站:Hero Union英雄联盟

接口返回值示例及其说明:

执行成功:

{
    "code": 1,
    "message": "完成",
    其它数据...
}

执行失败:

{
    "code": 0,
    "message": "错误信息"
}

以下为联盟所有接口的详细文档:

提交网页抓取任务接口

  • 接口网址:
https://herounion.filesite.io/api/newtask/
  • 请求方法:POST
  • 请求参数:
uuid
url
platform
contract
data_mode
selectors
notify_url
country
lang
sign

参数说明:

  • platform: url所属平台,目前支持的:抖音、快手、西瓜视频、bilibili
  • contract: 数据抓取合约,目前支持的:tajiantv,可由爬虫自定义并实现合约规则
  • data_mode: 返回数据格式,默认:json,可选值:json、html
  • sign: 对所有参数进行签名,具体方法见文档底部接口参数签名方法

返回值(以下其它接口返回值类似):

  • 如果提交完成,返回code=1、及新任务数据task
  • 如果提交失败,返回code=0、及错误信息message

查询网页抓取任务结果接口

  • 接口网址:
https://herounion.filesite.io/api/querytask/
  • 请求方法:GET
  • 请求参数:
uuid
task_id
sign

爬虫任务完成回调通知接口

  • 接收通知网址:
见提交网页抓取任务接口中的参数:notify_url
  • 数据格式:JSON,返回header:{Content-Type: application/json}
  • 请求方法:POST
  • 请求参数:
task_id
task_result
timestamp
sign

notify_url返回值:

  • 处理成功返回http status 200,其它状态码被视为失败
  • 如果回调通知收到失败的状态码,将会在一定时间内再次重试

Hero爬虫查询接口

  • 接口网址:
https://herounion.filesite.io/api/heros/
  • 请求方法:GET
  • 请求参数:
page: 可选,从1开始的页码
limit: 可选,每页数量

返回值:

  • 最多返回联盟最新的1000个爬虫

联盟状态查询接口

  • 接口网址:
https://herounion.filesite.io/api/stats/
  • 请求方法:GET
  • 请求参数:

返回值示例:

{
  start_time: 1712826714,
  taskStatus: { total: 6, waiting: 6, running: 0, done: 0, failed: 0 },
  heroStatus: { total: 4, idle: 4, busy: 0, offline: 0 },
  run_seconds: 94
}

爬虫状态上报接口

  • 接口网址:
https://herounion.filesite.io/api/onboard/
  • 请求方法:POST
  • 请求参数:
name
description
status: [idle, busy]
platforms: 爬虫支持的平台,可由爬虫定义,也可参考本文档底部[国内知名平台名称列表](#国内知名平台名称列表)
contracts: 支持的数据抓取合约,具体内容由爬虫定义
timestamp
country
lang
contact: 可选,爬虫提供方联系方式,将在英雄联盟网站展示,便于大家相互联系

参数说明,其中country国家代码和lang语言代码参数值请参考下面标准:

爬虫任务领取接口

  • 接口网址:
https://herounion.filesite.io/api/gettask/
  • 请求方法:GET
  • 请求参数:
platforms: 爬虫支持的平台
contracts: 爬虫支持的合约
country: 可选,爬虫所在国家
lang: 可选,爬虫支持的语言
data_mode: 可选,爬虫支持的返回数据格式

爬虫任务完成回传接口

  • 接口网址:
https://herounion.filesite.io/api/savetask/
  • 请求方法:POST
  • 请求参数:
name
task_id
task_result
sign

接口参数签名方法

将所有参数按字母排序之后转换成JSON字符串,最后再拼接上token计算MD5值。

示例如下:

var token = 'hello world';        //注册联盟后获得的密钥
var params = {                    //参数示例
    "b": 2,
    "a": 1,
    "t": 234343
};

var sortObj = function(obj) {     //参数排序方法
    return Object.keys(obj).sort().reduce(function(result, key) {
        result[key] = obj[key];
        return result;
    }, {});
};

//1. 排序参数
var sortedParams = sortObj(params);
//2. 计算MD5值
var sign = md5( JSON.stringify(sortedParams) + token );

国内知名平台名称列表

以下平台名可作为爬虫支持的平台参考:

  • douyin - 抖音
  • kuaishou - 快手
  • xigua - 西瓜视频
  • bilibili - B站

Hero Union英雄联盟开发进度

  • v0.1 - beta 2024-04-11 已完成

其它参考

npm install 使用代理,本地socks转web proxy软件:

https://www.npmjs.com/package/http-proxy-to-socks

启动代理软件:

hpts -s 127.0.0.1:1080 -p 8002