友链的朋友圈 RSS的聚合页 (WordPress->PIX主题篇&本地解析版)

本文适用于友链网站内容频繁更新的情况

友链的朋友圈 RSS的聚合页 (WordPress->PIX主题篇&在线解析版)请参考如下文章:

友链的朋友圈 RSS的聚合页 (WordPress->PIX主题篇&在线解析版) 友链的朋友圈 RSS的聚合页 (WordPress->PIX主题篇&在线解析版) 本文代码基于WordPress构建,PIX主题测试,其他主题理论上通用。 友链的朋友圈 RSS的聚合页 (WordPress->PIX主题篇&本地解析版)请参考如下文章: [pix_po... 时间:2023/12/26 分类:技术相关

之所以又出了一个本地解析版,是因为在线解析版始终未能解决两个问题:第一、我有个别友链网站,明明feed地址在浏览器里能够直接访问,并且能够正常显示rss内容,但就是解析不了,导致聚合页不能显示这些友链网站。第二、虽然代码采用了异步加载及缓存机制等优化措施,但每次在线解析时间长短都与友链网站的访问速度有关,如果网络不好甚至网站打不开,要么解析时间很长,要么聚合页内无法显示站点内容,不如把各站点的feed缓存到本地服务器,到时直接在本地解析。

20240115更新代码二,与代码一区别在于代码一是根据比较远程RSS的MD5和本地的MD5值是否一致来判断远程RSS是否更新,代码二是根据比较远程RSS的内容和本地的内容是否一致来判断远程RSS是否更新,更真实一些。

说一下大致逻辑:

现在的逻辑是获取后台所有友情链接网站feed地址后直接在线解析,修改后的逻辑是不再直接在线解析,而是第一次运行首先从wordpress后台检测友链网站的RSS地址是否填写,如果没填写为空则忽略该友链网站,如果已填写不为空,只访问这些RSS地址已经填写的友链网站的feed地址,然后查看feed地址页面的源代码,并各自计算出源代码的md5值,以友情链接网站域名.md5值.xml为文件名将各自的rss的源代码内容分别保存在当前主题目录中的rsscache文件夹下,然后在本地分别直接解析这些友情链接网站域名.md5值.xml,显示效果同现有代码不变。

rsscache文件夹下这些友情链接网站域名.md5值.xml的有效保存期为8个小时,8个小时内直接本地解析rsscache下的xml文件。8个小时后,服务器自动访问这些RSS地址已经填写的友链网站的feed地址并再次计算源代码的md5值进行比较,如果md5值变化则重新下载最新XML文件,并自动删除旧文件,如果md5值没有变化则无需下载。但是,如果8个小时之内我删除了rsscache下的所有文件,都将被视作第一次运行。

对于feed地址浏览器能够访问并且能够显示rss内容但是一直无法保存的友链网站,在rsscache文件夹下自动建立对应域名.md5值.xml文件,把这些无法保存RSS的友链网站,加入忽略域名里,即便是8小时后,只要rsscache文件夹下还存在该xml文件,就不会重新获取覆盖,只能手工修改。

友链的朋友圈 RSS的聚合页 (WordPress->PIX主题篇&本地解析版)-似水流年

温馨提示: 此处为隐藏内容,需要评论本文后才能查看.
评论后请刷新一次页面,但注意不要清除缓存,否则还需要再次评论!

用此方法能够解决一部分网站无法在线解析时的问题,但是可能还是有一部分无法获取,不用着急,因为是在本地了,把不能正常获取的rss自己动手复制粘贴到对应域名的xml文件中,重新获取一下就全部搞定了。

Comments | 4 条评论
  • obaby

    Google Chrome 118 Google Chrome 118 Mac OS X 10.15 Mac OS X 10.15 cn山东省青岛市 联通

    缓存还是有必要的,直接请求问题很多,并且数据量大了请求等待时间太长。

    • Avatar photo

      似水流年

      Microsoft Edge 120 Microsoft Edge 120 Windows 10 Windows 10 cn河南省漯河市 联通

      是啊。看了你的网站,钟MM既能开发应用又能出书投稿,膜拜一下大神!🙏🎁

  • 网友小宋

    Microsoft Edge 120 Microsoft Edge 120 Windows 10 Windows 10 cn河南省漯河市 联通

    有的站点rss订阅链接有问题,页面会报解析失败。建议增加忽略功能。

    • Avatar photo

      似水流年

      Microsoft Edge 120 Microsoft Edge 120 Windows 10 Windows 10 cn河南省漯河市 联通

      已经更新给你留言了。

消息盒子
# 您需要首次评论以获取消息 #
# 您需要首次评论以获取消息 #

只显示最新10条未读和已读信息