几个月前,为论坛上线了“博文贡献”功能,简单的说就是将你的博客绑定上论坛账号,发布博客后系统可以使用你的论坛账号自动将博文发布到论坛并附上你的原文地址,实现“你为论坛添砖,论坛为你加瓦”。

陆续到现在有30多位用户绑定了博客同步,但实际因功能不完善的原因,每次都只有几个博客完成了同步,前天在家调整了一天,适配兼容Atom和RSS2.0,结果总是“你的同步了,他的又不行了。”

忽然想到之前找叶开拿了一个博客的RSS订阅,似乎能获取大部分的RSS(因订阅的博客较少,暂未发现不能获取的),于是直接把这个订阅器的获取代码部分COPY到了论坛上,经测试,30多个绑定博客,已有20多个能正常获取,其余的几个可能因网络问题和爬虫拦截原因没能获取。

但随着想法的延伸,开始担心有人利用此同步方式查看网站访问日志,获取到源站 IP,与益达叶开交流后,提出了使用代理获取的方案。

本想将此间过程记录,但碍于自己也是东搜西搜,主要还是GPT帮我完成了此方案,所以就不记录那些随手一搜就有的结果了,只讲一下使用的软件吧。

一开始,我选择的是Tor,通过Tor的SOCKS代理访问网站成功,留下的都是Tor分发出来的IP,每次都不同,但都是欧洲那边的,可能访问国内的博客会导致超时等各种原因,总之我在放进PHP里之后,每次进行获取RSS数据都会异常。

尝试几次之后,决定还是自己搭建HTTP代理服务, 先后试了Squid 和 3Proxy,都是遇到一些莫名其妙的错误,也有安装不上的。

最后是使用了Tinyproxy,完美的安装运行,放进了博客和论坛的获取PHP里面,正常的获取数据,留下了代理服务器的IP。现在,我在几台不同的服务器上都安装了Tinyproxy,进行随机使用。

TIPS:如果遭遇恶意攻击代理服务器,还可选择购买别人的代理服务,专门为爬虫做的代理池,以下是我随便找的一个HTTP代理商,买了个一块钱做测试,付费后体验30分钟,会给一个API和令牌,用它来随机获取代理IP。

1725127721663.png
(避免广告,不提供地址)

一个月20块钱也可以接受的,我测试这个全是国内的IP,请求海外服务器的网站可能就不行了。

更新: 因部分人使用的是国内服务器并且屏蔽了海外IP,导致无法获取RSS,所以我在网上寻觅了2个小时找到了一个性价比还算可以的国内HTTP代理提供商家,支持按请求次数付费,掏腰包买了一个套餐:

1725138529375.png
(避免广告,不提供地址)

无时间限制,请求数用完即止,在调试的时候需要区分哪个RSS源用哪个区域IP访问,就用了较简单的思路:默认使用购买的代理池获取,如果国内代理池获取不了,再使用自己搭建的海外HTTP服务器获取。

尝试一遍后,发现存在一个浪费请求数的问题,每访问一个RSS源都去请求了一遍代理池,达到了每个访问RSS的IP都是不同的,提倡节约的原则,又加上了一个新的思路:只在获取RSS的第一次请求代理池IP,并存储下来,遇到不能访问的切换到自建IP,下一条RSS再用存储的IP进行访问。只存储3分钟,3分钟过后如果还有新的RSS获取请求,再从代理池拉新的IP(代理池规定的动态IP存活时间在3分钟左右)。


这或许也并不能完全的隐藏源站IP,但也并不会很直观的就把源站IP暴漏出去。

欢迎你也加入论坛绑定自己的博客,如果绑定后无法同步,请尝试放行 User agent 请求标识:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 Dalao/1.0 www.dalao.net

最后,放上几枚论坛的注册邀请码,邀请码只能使用一次,先到先得:

7416F7BE04A8
B3B7B5B7A0F3
AD9CCB1E4560
762952814759
909B47FBAE2F
3763B4EF6801

如果邀请码被用光了,你也可以选择付费加入我们,邀请码售价5元1枚,购买地址:https://faka.cm/

或者,你还可以选择加入十年之约,这是一个博客聚合平台,在这里与两千位博主共同狂欢!论坛已于十年之约项目互通,加入十年之约之后,访问https://www.dalao.net/xyears_mail.htm,填写加入时登记的邮箱可免费获得一枚注册邀请码,一个邮箱仅限一次。


关于博文同步:因需要保证同步质量,拒绝绑定水文极其严重的博客,包括说说站点、撰写敏感言论的站点、宗教信仰类站点等。

附:大佬论坛:“博文贡献 BETA 2.0” 版本说明