超详细!如何利用Huginn制作专属RSS
前言
本文转载自Jianger's Blog,欢迎订阅。本篇博文接上利用Feed43为网站自制RSS源,上一篇讲解了RSS的简介以及利用Feed43自制专属RSS,Feed43有其优势,缺陷也很明显,不能高度自定义、有的网站无法使用。那么此时,一个更为牛X的工具出场了,它就是Huginn。本篇就带你一探Huginn,并从安装到制作全程详细讲解制作专属RSS。
前排提示
Huginn需要安装在云主机/云服务器上使用,如果你还没有,赶快购置一台吧
Huginn为何物
Huginn 是一个创建代理的系统,它为你在线执行自动化的任务。它主要的用途就是发送HTTP请求获得相关数据,然后你可以选择进行如下处理:
- 将获得的数据进行相应的格式处理输出,例如RSS;
- 将获得的数据通过第三方接口(huginn官方支持不少)进行发出,例如发邮件;
- 将获得的数据作为相关参数用作另一事件event的参数,例如将获得的天气信息作为Email Agent的内容。
不难发现,通过以上三方面的组合操作,Huginn可玩性颇高,它不仅仅可以用来制作RSS源,是一款自动化的效率利器,你可以把它看作是自己服务器上的 IFTTT 或 Zapier (注:两款皆是自动化工具)的破解版本。解锁更多姿势,请参阅官方文档 。
Huginn的安装
官方提供了很多种安装方式,我采用了Docker的安装方式,Docker是一个轻量的实现虚拟化的利器,不用一个一个安装需要的应用,个人用足以,使用方法不详述了,贴一个学习地址Docker教程,本文也用不上太多,会用就好。下面开始安装,说明一下我的云服务器为腾讯云Centos 7.5,以下操作均基于此系统。
使用连接客户端连接腾讯云,并输入如下命令回车
yum install docker -y
不一会儿,若看到
Complete!就安装完成啦,接着启动docker服务,输入如下命令并回车systemctl start docker
安装容器前先替换成阿里云镜像,官方源太慢了!
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://iikujkej.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
安装运行测试容器,输入如下命令并回车,如果80端口已占请改用其他端口
docker run -d -p 80:80 httpd
安装成功后在浏览器输入http://你的服务器IP,如果页面显示
It Works,说明docker运行起来了,可以继续下一步虽然安装Huginn时附带有一个轻量的数据库,但Huginn一删里面的数据就没了,所以接下来安装通过docker安装MySQL,直接连接外部的MySQL也可以,不过麻烦些
docker pull mysql:5.6
我这里指定了MySQL版本为5.6,未指定的话,默认是最新的,但是最新版容易出问题,so.
完成后创建并启动一个MySQL容器,MYSQL_ROOT_PASSWORD就是密码,可以自行设置
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.6
接着进入MySQL容器修改权限,完成后最好重启MySQL容器
docker exec -it mysql bash
mysql -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;
终于要安装Huginn了!输入如下命令,HUGINN_DATABASE_PASSWORD就是上面设置的密码,MYSQL_PORT_3306_TCP_ADDR对应docker的本地IP,你可以使用
ifconfig命令查看docker pull huginn/huginn docker run --name huginn -p 3000:3000 -e MYSQL_PORT_3306_TCP_ADDR=172.18.0.1 -e HUGINN_DATABASE_NAME=huginn -e HUGINN_DATABASE_USERNAME=root -e HUGINN_DATABASE_PASSWORD=123456 huginn/huginn
最后在浏览器中输入http://你的服务器IP:3000并访问,出现如下页面即安装成功!
点击Login登录,初始账号:admin,密码:password,登录进去可自行修改。
开始定制专属RSS
以下以制作电影天堂的最新电影信息RSS为例
新建第一个Agent,获得标题和对应链接
初始化已经有一些Agents,你可以从里中学习到一些使用方法。点击+ New Agent添加第一个Agent,Type选择Website Agent。
Name框输入名称,Schedule下拉框选择执行的间隔时间,其他默认即可
Options参数最为关键,右侧都有英文说明的,字段简要说明如下:
url:网址链接
type:返回的数据类型,支持xml,、html、json、text,此处填写html
mode:抓取模式,可选
all,on_change,merge,这里填写on_change,表示页面有变化才会抓取extra:表示抓取规则,
- url和title表示抓取字段的名称,可随意命名;(后面用得着,作为参数传给其他Agent)
- css表示抓取内容的css路径,value表示抓取的值,@href表示抓取对应css标签的href属性值,还有@src,@title等等;
- 如果要抓取对应标签的值,可填
.(包括html代码的全部内容),string(.)(只包含对应标签的值),text()等同string(.)
填写完毕后点击Dry Run,如上图显示抓取到了数据表明有效,然后点击save保存,否则请修改extract下的参数再试。
保存后run一下,然后就会有生产出很多events,就是获取到的数据。如果没有获取到可能是数据库的问题。
新建第二个Agent,获取全文输出
同样的,Type选择Website Agent,Sources选中第一个Agent,下面的框一定勾选上
{{url}}即第一个Agent传过来的超链接参数,这里mode一定填写merge,这样两个Agent的字段就组合到一起了,同样的选择一个接受到的event测试一下
把第一个的events都删除然后重新run一下可以发现第二个Agent也自动执行了,第二步完毕。
新建第三个Agent,输出成RSS
Type选择Data output Agent,Sources选择第二个Agent,secrets填写RSS地址自定义的末尾名称,item下就是RSS中的每一条信息了,填写上对应参数,其他默认即可。最后点击保存
至此,一个专属RSS源就已生成,点击第三个Agent就能看到下图所示,把它添加到RSS阅读器上去吧。
超详细!如何利用Huginn制作专属RSS的更多相关文章
- 利用Python实现高度定制专属RSS
前言 本文转载自个人博客网站,欢迎来访订阅.本篇属于定制RSS系列终极一弹,是三种方式中自由度最高.定制化最强的,也需要一定的编程能力.附上前两篇链接:1.利用Feed43为网站自制RSS源:2.如何 ...
- exe电子书制作教程(超详细)【申明:来源于网络】
exe电子书制作教程(超详细)[申明:来源于网络] 地址:http://wenku.baidu.com/view/0b046907eff9aef8941e0631.html
- 超详细的php用户注册页面填写信息完整实例(附源码)
这篇文章主要介绍了一个超详细的php用户注册页面填写信息完整实例,内容包括邮箱自动匹配.密码强度验证以及防止表单重复等,小编特别喜欢这篇文章,推荐给大家. 注册页面是大多数网站必备的页面,所以很有必要 ...
- 超详细!Vue-Router手把手教程
目录 1,router-view 2,router-link 3,重定向redirect 4,路由别名 5,路由传参props 5.1,布尔模式 5.2,对象模式 5.3,函数模式 6,路由守卫 6. ...
- 超强、超详细Redis数据库入门教程
这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么2.redis的作者何许人也3.谁在使用red ...
- 超强、超详细Redis数据库入门教程(转载)
这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么 2.redis的作者何许人也 3.谁在使 ...
- PHP yield 分析,以及协程的实现,超详细版(上)
参考资料 http://www.laruence.com/2015/05/28/3038.html http://php.net/manual/zh/class.generator.php http: ...
- J2EE进阶(十四)超详细的Java后台开发面试题之Spring IOC与AOP
J2EE进阶(十四)超详细的Java后台开发面试题之Spring IOC与AOP 前言 搜狐畅游笔试题中有一道问答题涉及到回答谈谈对Spring IOC与AOP的理解.特将相关内容进行整理. ...
- Java集合框架总结—超详细-适合面试
Java集合框架总结—超详细-适合面试 一.精简: A.概念汇总 1.Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口, ...
随机推荐
- maven 从svn导入项目遇到的问题 No marketplace entries found to handle yuicompressor maven plugin:1.3.0:compile
版权声明:本文为博主原创文章,未经博主同意不得转载.安金龙 的博客. https://blog.csdn.net/smile0198/article/details/25463825 RT.使用ecl ...
- C# 从零开始写 SharpDx 应用 画三角
原文:C# 从零开始写 SharpDx 应用 画三角 版权声明:博客已迁移到 https://blog.lindexi.com 欢迎访问.如果当前博客图片看不到,请到 https://blog.lin ...
- HLSL像素着色器
原文:HLSL像素着色器 昨日不可追, 今日尤可为.勤奋,炽诚,不忘初心 手机淘宝二维码 扫描 或者打开连接:程序设计开发 ,掌声鼓励,欢迎光临. 像素着色器替代了固定渲染管线的 ...
- 在WPF中绘制多维数据集
原文 https://stuff.seans.com/2008/08/13/drawing-a-cube-in-wpf/ 是时候使用WPF绘制一个简单的3D对象了.作为WPF中3D图形的快速介绍,让我 ...
- COGS 775 山海经
COGS 775 山海经 思路: 求最大连续子段和(不能不选),只查询,无修改.要求输出该子段的起止位置. 线段树经典模型,每个节点记录权值和sum.左起最大前缀和lmax.右起最大后缀和rmax.最 ...
- 树状数组(Binary Index Tree)
一维BIT(单点更新,区间求和): Problem - 1166 #include <iostream> #include <algorithm> #include <c ...
- Python深入:super函数
新式类中最酷的,或者也是最不平常的特性之一,可能就是编写“cooperative类”.‘cooperative类’通过多继承,使用我称之为‘cooperative super call’的模式. 先来 ...
- Laravel实现定时任务的示例代码
https://mp.weixin.qq.com/s/VUEqjwcHRb0ovhP0wup36A 最近在玩Laravel实现定时任务,这个是示例代码,可以参照这个实例.有需要的可以看看 定时任务是后 ...
- Python 的经典入门书籍
实python非常适合初学者入门,上手很容易.我就是完全通过网上资源学了python的.最大的是3点经验:1.找一本浅显易懂,例程比较好的教程,从头到尾看下去.不要看很多本,专注于一本.把里面的例程都 ...
- php 向数组 首位插入 和 尾部插入
首位插入: <?php$queue = array("orange", "banana");array_unshift($queue, "app ...