重写博友圈RSS聚合程序

生活随记  ·  2025-06-05

最近我花了些时间重写了RSS聚合程序,这次重构解决了很多长期困扰我的问题。作为一个以前运行Windows服务上的程序,它现在变得更加健壮和智能了也从系统服务上转移到计划任务了。期间还因为服务器不支持tls1.3我重装了支持的系统。以obaby@mars网站证书为例更换了新证书后,请求时一直发生ssl握手失败。

这次重构最大的突破在于解析器的兼容性。现在程序可以处理各种非标准的RSS源了,包括那些在XML头部存在空格的博客,特别值得一提的是日期处理。之前因为没处理日期时区问题直接丢给了网站,而我又不是特别会php,摆弄了几次都没成功。

iLogsRSS聚合爬虫

每隔6小时爬取一次

在抓取过程中,我发现有些博客的服务器特别敏感,稍微多访问几次就会把IP拉黑。为此,我编写了邮件通知系统,当首次成功抓取某个博客时,会自动发送一封邮件,邀请博主将我的服务器IP加入白名单。这个通知只会发送一次,避免骚扰。如果遇到超时或被封禁的情况,会立即发送警报说明邮件。每个异常周期内只会提醒一次。不过如果之后又出现新的失败,会再次通知。从昨天开始运行,每个博客只抓取最新的两篇文章,到现在已经爬取了多次没出现异常。


我学编程时还是vs2005,现在都到vs2025。这次发现它的代码预测功能。我刚打几个字母,它就能准确预测出我接下来要写的内容,大大提高了编码效率。

其次是尝试使用AI辅助编程的。我把几个简单的方法需求丢给AI,结果让人。。。本来只需要几行代码的功能,AI硬是写出了几百行。经过几轮修改后,代码量不减反增,最后变成了一个庞大的工程。ai这简单事情复杂化是跟谁学的?某些企业吗?

部分博友想使用我这个程序,想了想似乎不太合适,因为它是一个高度契合我的网站的程序。缺少一个环节都不行。
(1)评论审核后进入有链序列文件。(2)rss聚合程序到达指定时间开始查找rss链接并生成json存储昵称邮箱网址rss地地址。根据地址逐个请求解析rss信息并保存到网站目录下的rss.json文件,页面再读取json并解析呈现到页面。每次爬取后rss.json文件都会覆盖。避免数据越来越多读取变慢。

如果想使用rss功能可以去找一些支持api的rss。之前好像有看到谁写过。我的服务器资源有限不能提供api服务。

 

其它一些细微改动,评论区叠加回复五次会挤压的很厉害,原评论区的html被原主题作者给多次混淆了代码无法修改,我选择了采用加载css后置覆盖原有样式调整到回复全部平级。网站修改仿佛是个无底洞,一旦踏上了一直修修改改的。

 
版权属于: 全局变量

 

评论  (评论须知)
寻鹤
寻鹤

复杂,而且目前见到的博主都是linux服务器多

全局变量
全局变量

微软技术方向老程序员。linux没接触过不懂😁。

雅余
雅余

一直没有耐心去折腾这个事情,都是用软件订阅。

全局变量
全局变量

没事在家捣鼓着玩

网友小宋
网友小宋

第一次见在win上部署的,我那个用的freshrss的api。有个提醒挺好的,有的抓取太频繁,被防火墙直接搬了。

全局变量
全局变量

老程序员转行十多年了。以前学的就是微软开发也只会微软开发。freshrss好像很多人都用的这个,我嘛纯属折腾。

满心
满心

linux也整一套吧

全局变量
全局变量

昨天研究了一下跨平台,太麻烦了,所有代码要全部按照跨平台的写法从写。

mainbranch
mainbranch

没想到博友圈是跑在Windows上的程序?,话说现在.Net Core支持跨平台了,有兴趣搬到Linux服务器上跑吗,感觉会更省资源

全局变量
全局变量

刚想着消停下面,这是逼着我又折腾啊。?

似水流年
似水流年

我现在已经深深感到,能用插件的话尽量不手动修改。改的越多,想换模板的时候套的越牢。?

全局变量
全局变量

换模板?“手捂肚子、撒日朗、撒日朗、撒日朗”

全局变量
全局变量

换模板?“手捂肚子、撒日朗、撒日朗、撒日朗”

大致
大致

用自己做实验是个好习惯。别拿我做实验哈。我那里10分钟内访问12次以上就关小黑屋了。因为是纯手搓的fail2ban规则,可懒得单独去设白名单。

全局变量
全局变量

十分钟12次?我的是6小时执行一次。

Vind
Vind

我收到了加白名单的邮件,但是还没操作。
我看我博客最近两三篇都有被你抓到的。

全局变量
全局变量

有呀。序号3和12不就是的嘛。只抓取最新的两篇博文。现在的链接数40个抓取的博文就80篇了

Yang
Yang

强迫症晚期用户发来提醒:通报批评直接部署debug版本的全局变量同学,请Release后重新部署!哈哈

全局变量
全局变量

全局变量在此接受领导批评!图省事直接上了debug!全局变量表示下次不再犯!哈哈

龙笑天
龙笑天

拉取RSS的频率要控制好 有些人拉取频率太高了 像CC攻击一样...

全局变量
全局变量

嗯,我的一天就几次

obaby
obaby

不校验证书就行了,毕竟现在的证书办法机构太多了。

全局变量
全局变量

写了不校验也一直失败。所以只能把系统换了。

acevs
acevs

ai估计还不会逻辑编程,代码复用什么的。瞎说的。
修改是无尽的任务

全局变量
全局变量

给新手用可以反正看不懂。?

满心
满心

我是直接部署了FressRss,然后AP接入博客,也挺好用的,但是程序上有Bug,将就用了

全局变量
全局变量

嗯也可以了,我就是折腾折腾。它自己拉友链数据。

石樱灯笼
石樱灯笼

第二段结尾的错别字改一下。

全局变量
全局变量

?

石樱灯笼
石樱灯笼

这几年脚本小鬼比较抽风,有些小鬼拉rss的频率甚至高达30秒一次甚至更频繁,很多网站现在都默认检查访问频率,只要有嫌疑基本就被封IP。

蜡客小生
蜡客小生

如果是24小时内每30秒拉取请求,那不被封才怪。一般都是每隔24小时抓取一次,每次抓取时长30秒,比较正常。

全局变量
全局变量

24小时内抓取三四次是比较合理的,毕竟有那么多博客每个人的发表时间不一。30秒请求一次甚至更频繁我觉得这有可能是ai干的。

石樱灯笼
石樱灯笼

只要你有心情检查access.log,那疯狗的密度远超出你的想象。

全局变量
全局变量

额。。。我的一天也就几次。30秒一次这是要干嘛。