Browse Source

code reindent, add config for herounion

master
filesite 8 months ago
parent
commit
87754b28a0
  1. 20
      README.md
  2. 14
      config.mjs
  3. 3
      lib/taskMoniter.mjs
  4. 6
      package.json
  5. 6
      spider.mjs

20
README.md

@ -37,13 +37,14 @@ Hero scripts of machete.
## 使用方法 ## 使用方法
1. 下载本源码到本地后,进入项目根目录 1. 下载本源码到本地后,进入项目根目录
``` ```
git clone "https://git.filesite.io/filesite/machete_hero.git" git clone "https://git.filesite.io/filesite/machete_hero.git"
cd machete_hero/ cd machete_hero/
``` ```
2. 执行下面命令安装依赖包:
2. 执行下面命令安装依赖包
``` ```
npm install npm install
``` ```
@ -51,8 +52,19 @@ npm install
如果你对npm和node不熟悉,请自行了解。 如果你对npm和node不熟悉,请自行了解。
3. 写一个.mjs脚本,调用bot/下的类库,实现目标网页访问和解析获取所需数据。 3. 执行下面命令启动爬虫
```
npm start
```
在目录todo/里创建任务文件,爬虫检测到新任务后自动抓取数据并保存到data/目录下。
4. 二次开发
写一个.mjs脚本,调用bot/下的类库,实现目标网页访问和解析获取所需数据。
还可以参考bot/下的类库,实现对任意网站的数据抓取。
bot/目录下的类库调用方法,可参考test/scrap_test.mjs测试脚本, bot/目录下的类库调用方法,可参考test/scrap_test.mjs测试脚本,
测试脚本使用方法见test/README.md文档。 测试脚本使用方法见test/README.md文档。

14
config.mjs

@ -4,8 +4,20 @@ export default {
data_save_dir: 'data/', //抓取完成数据保存目录,文件格式:.url快捷方式,详细说明见:https://filesite.io data_save_dir: 'data/', //抓取完成数据保存目录,文件格式:.url快捷方式,详细说明见:https://filesite.io
//herounion对接配置
herounion: {
name: 'machete_hero', //爬虫名字
description: '支持Machete的TaJian皮肤的hero爬虫', //爬虫简介
platforms: 'douyin,kuaishou,xigua,bilibili', //爬虫支持的平台
contracts: 'tajiantv', //爬虫支持的数据采集合约(可二次开发自定义)
country: 'cn', //爬虫所在国家
lang: 'zh', //爬虫支持的语言
contact: 'https://filesite.io', //爬虫的联系方式
},
//bot相关配置 //bot相关配置
//userAgent: '~ chrome >= 114 && mac', //指定操作系统和浏览器版本 cloud_server: 'ws://192.168.3.13:1818',
userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36', userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
viewport: { viewport: {
width: 1440, width: 1440,

3
lib/taskMoniter.mjs

@ -16,7 +16,6 @@ import path from 'node:path';
import cron from 'node-cron'; import cron from 'node-cron';
class TaskMoniter { class TaskMoniter {
constructor(task_list_dir) { constructor(task_list_dir) {
this.check_time_gap = 30; //检测间隔时间,单位:秒 this.check_time_gap = 30; //检测间隔时间,单位:秒
this.checking = false; this.checking = false;
@ -182,9 +181,7 @@ class TaskMoniter {
task_auto_run.start(); task_auto_run.start();
console.log('[%s] TaskMoniter auto check started.', common.getTimeString()); console.log('[%s] TaskMoniter auto check started.', common.getTimeString());
} }
} }
export default TaskMoniter; export default TaskMoniter;

6
package.json

@ -4,6 +4,10 @@
"dependencies": { "dependencies": {
"@ulixee/cloud": "^2.0.0-alpha.24", "@ulixee/cloud": "^2.0.0-alpha.24",
"@ulixee/hero": "^2.0.0-alpha.24", "@ulixee/hero": "^2.0.0-alpha.24",
"node-cron": "^3.0.2" "node-cron": "^3.0.2",
"axios": "^1.3.3"
},
"scripts": {
"start": "node spider.mjs"
} }
} }

6
spider.mjs

@ -21,8 +21,8 @@ import cron from 'node-cron';
taskMoniter.run(); //监控新任务 taskMoniter.run(); //监控新任务
//配置本地cloud server地址,cloud安装参考:./install_cloud.sh
const heroCloudServer = 'ws://192.168.3.13:1818'; const heroCloudServer = typeof(configs.cloud_server) != 'undefined' && configs.cloud_server ? configs.cloud_server : '';
//spider run //spider run
let spider_is_running = false; let spider_is_running = false;
@ -84,6 +84,8 @@ import cron from 'node-cron';
task_auto_run.start(); task_auto_run.start();
console.log('[%s] Spider started.', common.getTimeString()); console.log('[%s] Spider started.', common.getTimeString());
//TODO: 对接英雄联盟接口:https://herounion.filesite.io
})().catch(error => { })().catch(error => {
console.error("Spider error got:\n%s", error); console.error("Spider error got:\n%s", error);
process.exit(1); process.exit(1);

Loading…
Cancel
Save