长亭百川云 - 文章详情

Huginn-RSS

Delphi研习社

66

2024-07-13

写在前面的话

前面的文章解释过过为什么我最近热衷于折腾 RSS,所以今天一起聊一下 RSS 源解析

RSSHub 本身并不复杂,虽然官网被墙,但是按照官方文档很容易就可以搭建一个镜像站,这里推荐两个镜像站点

RSSHub 虽好但它也不是万能的,遇到未收录网站时它也无能为力,此时的解决方案就剩下两个

  • 向官方提交我们自己做好的 RSS 源(这个挺麻烦,至少我没搞明白)

  • 寻找第三方服务(鉴于国内的网络环境已知的 RSS 服务站几乎都挂了)

有兴趣搭建的可以参考:https://cry33.com/archives/489.html

入手 Huginn

得知 Huginn 完全是个意外,我自己一直在写一个 RSS 阅读器,本来想找个其他的阅读器参考一下。最后找到 Fluent Reader,然后在搜索结果中也看到了 Huginn

顺便说一下 Fluent Reader 阅读器,确实很强悍,尤其是全文抓取(我不知道怎么做的),有时间了得学习一下

开源地址:https://github.com/yang991178/fluent-reader

这两天研究了一下 Huginn 终于搞明白大概怎么使用了,所以写一篇文章记录下

基础概念

Agent(代理):Huginn 干活的流程基本就是通过一个个的 Agent 串联起来实现我们想要的功能

接下来就需要研究一下 Agent 的基本组成

基本信息区

名称(Name)自己随便起一个就行,比如"第一步",或者网站名,或者"摘要",自己能看明白的名字就好。

日程(Schedule)根据实际需要设置,比如你抓取的内容更新比较频繁,就把时间间隔设置的小一些,Every 5m、Every 10m 之类的

控制(Controllers)不用填写

事件保留时间(Keep events),实际使用要设置成 forever,要不工作几天就不工作了

来源端(Sources),就是说你需要不需要其他代理的数据,一般创建第一个代理这项不用填。立即执行(Propagate immediately) 打勾

接收端(Receivers),就是说你这里抓取的信息要传递给下一步的代理,一般创建第一个代理这项不用填。

场景分类(Scenarios),就是把这一系列的代理打个组这个分类,比较方便查看,可填可不填

代码区

这一部分基本上是 Agent 的核心功能了,能不能实现解析就看这里写的是否正确

  • 填写 url,就是你要抓取的网页网址

  • 类型(type),基本都是 html

  • 模式(mode),这里有三种,all、on_change、merge

一般情况下第一个 Agent 为 on_change 第二个 Agent 则选择 merge

extract(提取):基本上由两部分组成(我自己了解的)

  • 选择器:支持 CSS 的选择器语法和 XPath

  • 取值:即在符合选择器时标签的值可以是标签的属性或者文本

实例

这里以万一老师的博客为例,没有冒犯的意思,仅仅是演示

setup-1

点击尝试运行查看有没有数据,如果没有可能是选择器有问题

setup-4

第一步基本完成,但是记得 save 同时运行,Events Created 列表生成数据之后才继续下一步

创建文章详情

以第一步为模板创建第二个 Agent

尝试运行应该能看到结果,如果没有文章详情还需要检查选择器

创建 RSS 输出

注意这一次创建的是类型是 Data Output

运行结果

选择第一个 Agent,可以运行

选择第三个 Agent,查看运行结果

至此基本完成,其他的网站也可以参考这个套路

结语

其实这里面还有一个问题,我暂时没有啥思路,就是分页的问题,如果哪位大佬有知道的还不望不吝赐教!!

最后还是推一下新公众号

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2