【进阶篇】RSS的世界:Feed43篇(2022.06.02新增内容)
上一篇中介绍了RSSHub的使用方法(CV13543035),但还是有些网站RSSHub里没有收录,这个时候可以用Feed43搞定~
说个题外话,我这几天折腾订阅源其实是为了追星……尤其像我这样的追星族,懒的用浏览器打开自己爱豆的官网,结果错过了好多消息…… 关键是……他官网打开很费劲啊!!!加载就得一分钟起步,加载出来的页面……

这个页面…… 我的手机和我一起穿越2003……
废话不多说,先来看看feed43网页:https://node2.feed43.com
嗯…… 纯英文,不怕,我一会上保姆级教程

就像它上面宣传的一样:I wish all my favorite sites provided RSS feeds.(我希望所有我喜欢的网站都提供RSS源)
点击粉红色的长按钮(Create your first RSS feed)开始制作~

step 1(第一步),将你需要做成RSS源的网址填入
这里我以墨镜老头Chage的官网为例,这是我需要做成RSS源的网站。


将墨镜老头的网址填进去后,点击右侧的粉红按钮(Reload)

这时候我们先看一下一些老头官网上的有用信息

比如第一条消息,它点开后的网址是https://中间省略……/detail-319.php,然后回到feed43,在那堆绿色的代码里找这个detail-319.php的网址。

找到了,一般这种内容都会在中间位置,不会出现在开头和结束部分,你看我右边的滑块基本快滑到中间了才到关键内容。
这里需要讲几句怎么看这个代码。

代码都是一段一段的,开头是<英文,结束就是</相同的英文,有时候会一层一层套着,总体来说不难找。
把有关键信息的这么一段代码复制出来,粘贴到记事本上。

在这个step 2里面有个小提示,里面有个举例,也一并复制到记事本里面。

现在我们需要将那些关键信息所在的那一行复制出来。
啥是关键信息呢,一般来说就是新消息的标题,所对应的网址,还有发布时间,消息的类型也能算,具体看你需要多少关键信息吧。
第一个对勾是消息对应的网址,第二个对勾是消息发布的时间,第三个对勾是消息的标题。
下面讲用网站给出的例子改写这段代码了,其实就两句话完事,每行末尾加个{*},关键信息换成{%}。

先加{*},再将关键信息换成{%}

最后改完的代码见上图最下方,应该能看得懂是咋改的吧…… 加{*}换{%}

将改好的代码填到Step 2的Item这个框里,然后点击右下角的粉红按钮(Extract)

这里发现第一条提取出来的网址不对,莫愁,这时候再回到刚刚的记事本,我们再把代码修改一下。
把刚刚关键信息网址的上一行也算到有用的部分里,记得在末尾加{*}

多这么一行后,再点粉红按钮提取一下(Extract)

这一次的网址,标题,还有时间都没有问题了。

将网页往下拉,终于到Step 3了,这一步就是填写一些信息,feed title(订阅源标题)、Feed Link(订阅源地址)、Feed Description(订阅源概述),这三项是自动生成的,一般不改,如果标题太长就像上图那种,可以自己稍微精简一下,比如我就改成了 Chage.jp(Information)……
需要自己填的是下面的Item title、Item Link、Item Content
Item title就是刚刚说到的关键信息的消息标题,提取出来的信息对应的是{%3}(见上图的顶部,有截图到)。
Item Link是刚刚说到的关键信息的消息对应的网址,提取出来的信息对应的是{%1}(见上图的顶部,有截图到)。
Item Content是消息的摘要等等,这个网站没有,所以暂时不填,有的话可以填哦
可能有人会看到我在Item title里填了个{%2}{%3},因为这样是显示的时间+标题。
比如填写的{%2},{%3},那么就会显示:2020.10.11,RSS的世界
比如填写的{%2} | {%3},那么就会显示:2020.10.11 | RSS的世界
比如填写的【{%2}】{%3},那么就会显示:【2020.10.11】RSS的世界
这个填写比较灵活,可以自己随便来,或者只填标题,不要时间,都可以~
填好后点击右下角的粉红按钮预览(Preview)

到这一步基本就完成啦,Your feed is ready!
Feed URL就是我们需要的订阅源网址了,把这个添加到RSS的应用里,就完成咯~
自动生成的URL是一大串数字,可以自己更改,就是下面的Change file name
输入自己命名的就搞定啦,比如填入:my_rss,Feed URL就会变成:https://feed43.com/my_rss.xml,自己改一下就比较好记~


2022.06.02 增加新内容
一般情况下feed43时抓出来更新的文章,但是我遇到了一个麻烦的网站,它每周一更新两篇文章,但是feed43会把第一页的所有文章都抓出来,结果变成我每周一刷新RSS时,会一口气出来好多文章,其中大部分都是我之前看过的。
对于这种情况,feed43能不能每次只抓取我需要的那俩篇文章呢?当然可以!
下面开始教程~
上面讲怎么填代码的时候,用的是下图的第二个框,Item (repeatable) Search Pattern*:
这次需要用到它上面的 Global Search Pattern (optional) 全局搜索模式(可选)

这个全局搜索是给你需要抓取的内容先规定个大概范围,不填写此项默认是全网页抓取。
先看看这次的代码。

可以发现代码相当有规律,每一段都是<div class="box-article-item">起,</div>止。
下面在 Global Search Pattern (optional) 上写大致搜索范围,格式是这种:<h1>Local news:</h1>{%}<h1>
按着格式要求改成:<div class="box-article-item">{%}</div>{*}
末尾一定记得加{*},不加抓不出来。
然后再把下面的Item (repeatable) Search Pattern按上面的教程写好,点击Extract

嗯!抓出来了!但是……怎么只有一条呢……
这里要说下,feed43默认按从上到下的顺序抓取,我们这里只填了一个<div class="box-article-item">{%}</div>,所以feed43默认只抓取第一段<div class="box-article-item">的内容,然后停止了。
解决办法很简单,需要几条就在全局搜索写几条!
我需要feed43在网站更新时只抓前俩篇文章,所以写两遍即可。

最后按着上面的教程,输出RSS,搞定!
刚改完便急着刷新RSS阅读器会失望的哦,因为feed43做修改不是立刻生效~
在下次网站更新时,它肯定会按着你新写的规则抓取哒,放心啦~

Feed43的用法基本算说完了,现在说下Feed43的缺点,它是6小时更新一次,不是说官网更新了啥,它就立刻显示出来,不过这个也算不上啥缺点,一般也不会有啥火急火燎的消息要立刻就看到。然后它每次只提取20条消息,再多的消息就不提取了,我个人觉得20条够看了~
RSS进阶向基本就没啥了,如果将来需要写【RSS高级篇】会说到用Huginn提取网站内容,这个就更复杂了,会有人用到么……
