1. 安装docker和docker-compose:
apt -y update
apt -y install curl
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker
curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
2. 新建docker-compose:
mkdir -p /opt/huginn && cd /opt/huginn && nano docker-compose.yml
3. 使用下面的配置(数据库密码/SMTP服务连接信息请自行修改)
version: "3.5"
services:
huginn-server:
image: huginn/huginn
container_name: huginn
depends_on:
- huginn-mariadb
environment:
- HUGINN_DATABASE_HOST=huginn-mariadb
- HUGINN_DATABASE_PORT=3306
- HUGINN_DATABASE_NAME=huginn
- HUGINN_DATABASE_USERNAME=huginn
- HUGINN_DATABASE_PASSWORD=password
- SMTP_SERVER=mail.233.fi
- SMTP_PORT=587
- SMTP_USER_NAME=imlala@233.fi
- SMTP_PASSWORD=password
- EMAIL_FROM_ADDRESS=imlala@233.fi
ports:
- 3000:3000
restart: unless-stopped
huginn-mariadb:
image: mariadb
container_name: huginn-mariadb
environment:
- MYSQL_DATABASE=huginn
- MYSQL_USER=huginn
- MYSQL_PASSWORD=password
- MYSQL_ROOT_PASSWORD=password
volumes:
- ./db:/var/lib/mysql
restart: unless-stopped
配置好后up起来就安装好了:
docker-compose up -d
打开 IP:3000 端口可以访问到WEB界面,默认的管理员账号:admin密码:password
进去首先把管理员的邮箱和密码修改一下,邮箱是用来接收通知的:
现在就可以添加Agent了:
先添加一个WebsiteAgent:
填写一些基本信息,Schedule这里设置为1分钟,既1分钟检查一次,Keep events设置为Forever,既永远让这个任务生效:
这里我拿搬瓦工的VPS购买页面演示,打开这个页面:https://bwh88.net/cart.php?a=add&pid=72
F12打开Chrome的开发者工具,然后按下图找到相应的div,右键Copy-full-XPath:
例如我复制出来的值是:
/html/body/div/div[3]/div[1]/div/div/div/div[1]
回到Huginn的界面在Option下点击Toggle View,使用下面我给出的这段配置替换url和xpath就行:
{
"expected_update_period_in_days": "2",
"url": "https://bwh88.net/cart.php?a=add&pid=72",
"type": "html",
"mode": "on_change",
"extract": {
"有货吗?": {
"xpath": "/html/body/div/div[3]/div[1]/div/div/div/div[1]",
"value": "normalize-space(.)"
}
}
}
如图所示:
接着点击DryRun测试一下看能不能获取到自己要的数据:
现在可以看到它是没货的,一旦有货了它这个div里面的内容肯定会有变化。
然后接下来我们让它在有变化的时候就触发另外一个EmailDigestAgent,既发送邮件通知我们。
和之前一样添加EmailDigestAgent,然后按照下图配置即可,注意Sources这里要选上“搬瓦工”:
这样就配置好了,如果你不确定你的配置是否可以正常工作,可以先用nginx搭建一个仿站,把页面里面的内容改一下看会不会触发这两个Agent。