Huginn其实非常适合像我这样的RSS阅读重度“用户”。很多RSS阅读器因为赚不到钱逐渐被公司所抛弃——商人嘛,无利可图自然不可持久。同时,一些新闻资讯类的网站也讨厌RSS,因为RSS用户对于他们来说不会带来流量——没有流量,自然没有收入。
目前来看,RSS的地位非常地“尴尬”,它在RSS开发者和RSS内容输出者面前非常不受欢迎,甚至有极端者“恨不得RSS已死”。幸好,RSS还有一大批忠实用户,一直支撑着RSS的发展,即便是移动APP的出现,也未能直接将RSS判定为“死亡”。
另外,对于微信公众号重度“患者”Huginn也有很好的“药方”。利用搜狐微信平台,Huginn可以帮助我们定时抓取微信公众号的文章更新,然后生成RSS,你可以将所有的公众号文章聚合到一个平台。Huginn可以为你抓取RSS全文,从此解放你的双手。
Huginn还可以监控天气预报,如果明天下雨,则给你发送提醒;监控某款商品的网页,一旦降价,通知你;监控某款商品的网页,一旦降价,通知你……官方还有非常多的应用实例,网友们也写出了非常多的Huginn脚本,帮助你打造一个只属于自己的IFTTT服务。
有人说,在某种程度上讲,Huginn比IFTTT还强大,因为Huginn可以与Slack、Pushbullet等进行整合,这样无论在身处何地何时,你都可以通过手机接收到Huginn给抓取的网站RSS更新、微信公众号文章、天气提醒、行程安排、待办事项、新闻动态……
PS:2017年10月31日更新,感觉Huginn麻烦的朋友,可以试试这一款免费的在线抓取全文RSS工具:生成和订阅任意网站RSS工具-实现RSS全文,邮箱和手机APP提醒。
Huginn安装部署官网推荐有两种方式,一种是将Huginn安装部署在自己的VPS主机上,过程比较繁琐,但是成功率还是非常高,这主要归功于Huginn官网的教程已经做到了傻瓜式。另一种则是部署在Heroku平台,免费的,适合没有自己的服务器的朋友。
Huginn部署VPS主机支持Ubuntu (16.04, 14.04 and 12.04)和Debian (Jessie and Wheezy),你只要按照官网的教程一步一步地复制执行命令,基本上可以成功了:Huginn在Debian/Ubuntu手动安装教程-抓取全文RSS和微信公众号开源软件。
需要的东西
部署步骤
登陆 Huginn Github 主页的 Deployment 部分:https://github.com/huginn/huginn#deployment,找到 Heroku 的按钮。然后点击,就会跳转到你的 Heroku 了。
点完按钮之后会跳转到你的 Heroku 界面去起个名字。直接拉到最后点 Deploy 的按钮,之后它就会开始 build 了。
创建好了后,点击 View 就直接跳转到已经建立好的应用了。Manage App 会跳转到 Heroku 管理界面。点击 View后可以看到 Huginn 很人性化的把步骤贴出来了。由于我们用的是自动安装,所以没有创建管理员用户,也有一些东西需要配置。(可以看到已经可以访问域名了)
现在我们对照着 Huginn 的说明来做。登陆 Codeanywhere,点击右上角的 Editor。会进入一个选择界面,如截图。
第一次的话点完 Create 会让你验证邮箱,验证完邮箱对着上图再做一遍就可以了。我们首先要下载新版本的 ruby 环境。
打开huginn.sh:https://github.com/tesths/tesths.github.com/blob/master/images/huginn/huginn.sh,复制到 Codeanywhere 的文件编辑器里。然后点击右上角保存。保存到根目录下,文件名保存为 huginn.sh。
然后在你的 Heroku 界面找到下图的地方,在以下地方将code-huginn换成你自己的名字。(点击放大)
然后执行脚本 huginn.sh,命令:bash huginn.sh。执行完毕之后,进行如下操作即可:
cd code-huginn/
(这里的 code-huginn 输入你刚替换的名字就好)。 heroku login
。 heroku git:remote -a code-huginn
。 bin/setup_heroku
。剩下的就是开始自动配置了。heroku空间几点说明:
heroku config:set AGENT_LOG_LENGTH=20
。 heroku config:set SMTP_DOMAIN=google.com
heroku config:set SMTP_USER_NAME=<你的gmail邮箱地址>
heroku config:set SMTP_PASSWORD=<邮箱密码>
heroku config:set SMTP_SERVER=smtp.gmail.com
heroku config:set EMAIL_FROM_ADDRESS=<你的gmail邮箱地址>
进入到Huginn,点击新建Agent,类型选择Website Agent,名字随便取,其它的保持默认。
填写选项内容。在选项中就是我们填写抓取规则的地方了。
extract内容。主要就是标题、链接、内容和时间等,我们只需要填写相关内容的Xpath路径,另外对于链接的话加入值:value: @href,标题加入:value: normalize-space(.)。如下图:(点击放大)
关于获取网页的Xpath的方法,直接使用Chrome,右击我们要获取的内容,然后选择“审查元素”,再到控制面板右击,选择复制Xpath。例如wzfou.com的最新文章的url的Xpath是://*[@id=”cat_all”]/div/div/div[2]/div/h2/span/a。
另外,由于我们获取到的Xpath往往是某一个具体的元素的,想要匹配所有的符合要求的元素,我们还可以借助Chrome的Xpath插件:XPath Helper。例如我们获取一般是://*[@id=”cat_all”]/div[1]/div/div[2]/div/h2/span/a。通过插件我们测试出去年第一个divr的1,也就是变成我上面的://*[@id=”cat_all”]/div/div/div[2]/div/h2/span/a。于就匹配了所有的最新文章链接地址了。
其它的标题、内容、时间等都可以参考上面的方法获取到。
预览抓取结果。点击“Dry Run”,你就可以预览抓取结果了。注意到“事件”中看到抓取了结果,就表示该Website Agent设置成功了。
还是点击新建Agent,类型选择Website Agent,来源选择你刚刚创建的Website Agent。
然后在选项设置处,URL填写:{{url}},即抓取你刚刚获取RSS的链接地址,mode选择“merge”,xpath就是本文的Xpath,value填入“.”,即原样输出全文并合并原先的输出。
点击新建Agent,类型选择Data Output Agent,Sources中填入第二步的Agent名称。
在选项中填入你的RSS的标题、描述、链接等信息,同时在Item中填写标题、描述、链接等,即输出RSS全文的标题、内容与链接地址等等。
最后,你就可以看到RSS订阅地址已经生成的。
复制该RSS订阅地址到RSS阅读器,就可以订阅文章更新了。
如果你没有RSS输出,请检查以下三点:
抓取微信公众号的文章更新,首先需要一个网页。这里我们需要利用的就是搜索微信平台了,例如挖站否的微信是这样的:
原理还是和上面一样的,创建Website Agent,去抓取搜狐微信页面,通过Xpath获得“最近文章”内容,然后得到最近文章的URL,继续抓取,最终获得微信公众号文章全文。
这里有一个抓取微信公众号生成RSS输出的scenarios,你可以直接下载导入:https://www.ucblog.net/wzfou/weixin.json。
导入完成后,你只需要修改“从搜狗微信搜索公众号,获取最新文章标题”和“获取公众号最新文章的链接地址”两个Agent的URL,换成你想要订阅的微信公众号URL即可。
最后,确保所有的Agent正常运行。
然后,你就可以使用RSS阅读器订阅微信公众号更新了。
PC电脑端。自然是用RSS阅读器了,不管你是用RSS订阅软件,还是使用RSS在线订阅平台,你只要有一个RSS订阅源,你可以享受在任意电脑上查看自己的RSS信息了。国内的可用一览(目前有 100 个订阅数的限制),国外用Inoreader(无限制但有广告)。
手机移动端。手机上可以安装RSS阅读器的APP,但是更强大的是Huginn可以结合IFTTT、Pushbullet、Slack等将图片、超链接、文件、文字等内容发到你自己的手机上,或者直接发到你的微信、QQ、邮箱等。
Huginn可以订阅任意你想要订阅的网站与平台,例如微信公众号、简书、知乎、博客、图虫、Lofter……,只要有网页同时生成了CSS,你就可以派出你的“Agent”去把他们抓回来,然后将他们“分门别类”,任意处置了。
看完此文的朋友,一定知道Huginn的门槛就在于环境的部署以及Website Agent规则的制定。虽然说Huginn有scenarios可供导入导出,但是目前为止还没有一个像油猴那样大规模的scenarios库,所以Huginn普及是非常困难的。
目前,大家可以在这里找到几个可供使用的脚本库:http://huginnio.herokuapp.com/scenarios。另外,Heroku部署Huginn也不是长久之计,一是Heroku基本上打不开,二来免费服务还不能运行24小时,不差钱的朋友可以购买一个VPS主机部署Huginn。这是我用过的VPS:VPS主机排行榜单。
文章出自:挖站否 https://wzfou.com/huginn-rss/,部分内容参考自walkginkgo、xzonepiece、walkginkgo、pmvince 版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。
文章更新于: 2018年8月28日 下午8:03
查看评论
测试成功! Thanks
Qi 大,我想监#控某个公众号发布新文章提醒,实时收到推送通知提醒,然后自己再去该公众号打开查看。不知道现在有没有办法可以监控公号文章更新的 ? 求推荐。教程上提到的搜狐微信平台已经没法用了
谢谢🙏
目前来看,可能不好搞,主要是因为微信封得厉害,用爬虫都不行。
几个agent的working一直“No”;点击run,Last Erro:Broken pipe @ io_writev – /app/app/models/agent_log.rb:16:in `write’,同样的问题,怎么解决,求博主细说,谢谢。
貌似是编码问题:https://github.com/huginn/huginn/issues/1514
我在阿里云上用docker部署的huginn。我也出现了这个问题,需要重新登陆终端,docker关闭再开启higinn容器,再登陆huginn,运行才能正常。我看也有其他人也遇到了这个问题,他是在腾讯云上挂的huginn,关闭终端或者长时间连接自动关闭后,也会出现broken pipe的问题,也是关闭容器再重启变好的。
working一直“No”;点击run,Last Erro:Broken pipe @ io_writev – /app/app/models/agent_log.rb:16:in `write’
规则错误,需要纠正一下。
已经可以了,谢谢。
请问怎么解决的啊 我也遇到这个问题了
可以了,这个问题挺常见,留下给后边的人提供一个思路。我在阿里云上用docker部署的huginn。我也出现了这个问题,需要重新登陆终端,docker关闭再开启higinn容器,再登陆huginn,运行才能正常。我看也有其他人也遇到了这个问题,他是在腾讯云上挂的huginn,关闭终端或者长时间连接自动关闭后,也会出现broken pipe的问题,也是关闭容器再重启变好的。
请教下,输出全文那个website agent 如何调试?运行dry run,得到的结果是空。博主能否把agent原始的option发出来参考下,谢谢。
已搞定,需要点击下上个一website agents获取到的event列表中的任意一个envent
抓取微信回来的文章图片是不是有问题?
请问…怎样设置能让网站只运行18个小时?可以设置起始时间吗?
好像不行,得自己手动。
博主你好,如果一个有好几段文字复合要求想合并到1个event里面输出要怎么做啊?
可以在mode中选择多个内容合并模式。
您好最后一步遇到这个问题该怎么解决呢,我把名字改成yui了
$ heroku git:remote -a code-huginn
This is the legacy Heroku CLI. Please install the new CLI from https://cli.heroku.com
▸ You do not have access to the app code-huginn.
cabox@box-codeanywhere:~/workspace/yui$ bin/setup_heroku
This is the legacy Heroku CLI. Please install the new CLI from https://cli.heroku.com
Welcome @gmail.com! It looks like you're logged into Heroku.
bin/setup_heroku:33:in `': invalid byte sequence in US-ASCII (ArgumentError)
cabox@box-codeanywhere:~/workspace/yui$
看错误提示好像是组件没有安装好,你可能还需要安装CLI 这样的工具。
博主您好,我把code-huginn改成yui了,但是到了“之后执行 heroku git:remote -a code-huginn。”这一步就出现下面的错误提示,该怎么解决呢
cabox@box-codeanywhere:~/workspace/yui$ heroku git:remote -a yui
This is the legacy Heroku CLI. Please install the new CLI from https://cli.heroku.com
▸ You do not have access to the app yui.
cabox@box-codeanywhere:~/workspace/yui$ heroku git:remote -a code-huginn
This is the legacy Heroku CLI. Please install the new CLI from https://cli.heroku.com
▸ You do not have access to the app code-huginn.
cabox@box-codeanywhere:~/workspace/yui$ bin/setup_heroku
This is the legacy Heroku CLI. Please install the new CLI from https://cli.heroku.com
Welcome sczan110@gmail.com! It looks like you're logged into Heroku.
bin/setup_heroku:33:in `': invalid byte sequence in US-ASCII (ArgumentError)