前言

本文转载自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,以下操作均基于此系统。

  1. 使用连接客户端连接腾讯云,并输入如下命令回车

    yum install docker -y
  2. 不一会儿,若看到Complete!就安装完成啦,接着启动docker服务,输入如下命令并回车

    systemctl start docker
  3. 安装容器前先替换成阿里云镜像,官方源太慢了!

    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
  4. 安装运行测试容器,输入如下命令并回车,如果80端口已占请改用其他端口

    docker run -d -p 80:80 httpd
  5. 安装成功后在浏览器输入http://你的服务器IP,如果页面显示It Works,说明docker运行起来了,可以继续下一步

  6. 虽然安装Huginn时附带有一个轻量的数据库,但Huginn一删里面的数据就没了,所以接下来安装通过docker安装MySQL,直接连接外部的MySQL也可以,不过麻烦些

    docker pull mysql:5.6

    我这里指定了MySQL版本为5.6,未指定的话,默认是最新的,但是最新版容易出问题,so.

  7. 完成后创建并启动一个MySQL容器,MYSQL_ROOT_PASSWORD就是密码,可以自行设置

    docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.6
  8. 接着进入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;
  9. 终于要安装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
  10. 最后在浏览器中输入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的更多相关文章

  1. 利用Python实现高度定制专属RSS

    前言 本文转载自个人博客网站,欢迎来访订阅.本篇属于定制RSS系列终极一弹,是三种方式中自由度最高.定制化最强的,也需要一定的编程能力.附上前两篇链接:1.利用Feed43为网站自制RSS源:2.如何 ...

  2. exe电子书制作教程(超详细)【申明:来源于网络】

    exe电子书制作教程(超详细)[申明:来源于网络] 地址:http://wenku.baidu.com/view/0b046907eff9aef8941e0631.html

  3. 超详细的php用户注册页面填写信息完整实例(附源码)

    这篇文章主要介绍了一个超详细的php用户注册页面填写信息完整实例,内容包括邮箱自动匹配.密码强度验证以及防止表单重复等,小编特别喜欢这篇文章,推荐给大家. 注册页面是大多数网站必备的页面,所以很有必要 ...

  4. 超详细!Vue-Router手把手教程

    目录 1,router-view 2,router-link 3,重定向redirect 4,路由别名 5,路由传参props 5.1,布尔模式 5.2,对象模式 5.3,函数模式 6,路由守卫 6. ...

  5. 超强、超详细Redis数据库入门教程

    这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么2.redis的作者何许人也3.谁在使用red ...

  6. 超强、超详细Redis数据库入门教程(转载)

    这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下   [本教程目录] 1.redis是什么 2.redis的作者何许人也 3.谁在使 ...

  7. PHP yield 分析,以及协程的实现,超详细版(上)

    参考资料 http://www.laruence.com/2015/05/28/3038.html http://php.net/manual/zh/class.generator.php http: ...

  8. J2EE进阶(十四)超详细的Java后台开发面试题之Spring IOC与AOP

    J2EE进阶(十四)超详细的Java后台开发面试题之Spring IOC与AOP 前言   搜狐畅游笔试题中有一道问答题涉及到回答谈谈对Spring IOC与AOP的理解.特将相关内容进行整理.    ...

  9. Java集合框架总结—超详细-适合面试

    Java集合框架总结—超详细-适合面试   一.精简: A.概念汇总 1.Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口, ...

随机推荐

  1. 如何在WPF控件上应用简单的褪色透明效果?

    原文 https://dailydotnettips.com/how-to-create-simple-faded-transparent-controls-in-wpf/ 使用OpacityMask ...

  2. APP UI设计趋势:为好设计而动

    http://www.cocoachina.com/design/20150703/12029.html 作者:bone9 善心悦目的动效已然成为一个app的必备,作为设计师自然要跟随趋势学习.APP ...

  3. Vue.js 第1章 Vue常用指令学习

    今日目标 能够写出第一个vue应用程序 能够接受为什么需要学vue 能够使用指令 能够通过指定完成简单的业务(增加删除查询) 能够理解mvvm 为什么要学习vue 企业需要 可以提高开发效率 实现vu ...

  4. CNN滤波器

    CNN 的第一步是把图片分成小块.我们通过选取一个给定宽度和高度的滤波器来实现这一步. 滤波器会照在图片的小块 patch (图像区块)上.这些 patch 的大小与滤波器一样大.   如之前视频所示 ...

  5. PHP中__FUNCTION__与__METHOD__的区别

    你知道php中__FUNCTION__与__METHOD__的区别吗?本文通过一个小例子,为大家介绍下二者的区别,有兴趣的朋友可以参考下.   PHP中__FUNCTION__与__METHOD__的 ...

  6. Android 字体库的使用

    开发Android的人大多都知道,Android里面对字体的支持少得可怜,默认情况下,TextView  的 typeface 属性支持 "Sans","serif&qu ...

  7. UTF-8与UTF-8 BOM

    在我们通常使用的windows系统中,我发现了一个有趣的现象.我新建一个空的文本文档,点击文件-另存为-编码选择UTF-8,然后保存.此时这个文件明明是空的,却占了3字节大小.原因在于:此时保存的编码 ...

  8. 原生js实现多个随机大小颜色位置速度小球的碰壁反弹

    文章地址 https://www.cnblogs.com/sandraryan/ 需求:生成n个小球,让他们在一个大盒子中碰壁反弹,要求小球随机颜色,大小,初始位置,运动速度. 思路分析: 创建小球随 ...

  9. js用for循环模拟数组翻转

    文章地址 https://www.cnblogs.com/sandraryan/ js本身为数组提供了reverse()方法,可以翻转数组,返回一个新的数组,不影响原数组. 本例中用for循环简单模拟 ...

  10. hdu 4146 Flip Game

    Flip Game Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total ...