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

陆续到现在有 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。
(避免广告,不提供地址)一个月 20 块钱也可以接受的,我测试这个全是国内的 IP,请求海外服务器的网站可能就不行了。
更新: 因部分人使用的是国内服务器并且屏蔽了海外 IP,导致无法获取 RSS,所以我在网上寻觅了 2 个小时找到了一个性价比还算可以的国内 HTTP 代理提供商家,支持按请求次数付费,掏腰包买了一个套餐:(避免广告,不提供地址)无时间限制,请求数用完即止,在调试的时候需要区分哪个 RSS 源用哪个区域 IP 访问,就用了较简单的思路:默认使用购买的代理池获取?绻诖沓鼗袢〔涣耍偈褂米约捍罱ǖ暮M?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.netPS:该功能已下线。
关于博文同步:因需要保证同步质量,拒绝绑定水文极其严重的博客,包括说说站点、撰写敏感言论的站点、宗教信仰类站点等。
附:大佬论坛:“博文贡献 BETA 2.0” 版本说明


