为什么PHP版RSS阅读器不集成wget?

王志勇 发表于 2019年10月02日 08:05

有一少部分RSS无法订阅,是因为越来越多的博客整站开启了防采集,导致连RSS也无法被PHP版RSS阅读器获取。也有的少数博客开始关闭RSS。这和几年前的情况完全不同,以前的独立博客是生怕别人订阅不到,把RSS挂到各种平台;如今有的博客关闭RSS。

当然,关闭RSS的博客是极少数,大多数独立博客是持开放的心态,欢迎读者订阅RSS。但是由于整站开启了防采集,会导致很多RSS阅读器也无法获取RSS。对于blogger,解决的办法是把RSS做成二级域名,并且关闭防采集,这样优点是分流、降低主站的负担;二是主站的防采集,不会影响RSS被订阅。

Linux主机的wget是一个重要的下载命令,并且支持修改UA。用这个方式获取主站设置了防采集的RSS,半年前的成功率在80%以上,现在的成功率在60%以下。
如果不修改UA,成功率在40%以下。

由于修改UA可能会涉及law纠纷,几个月前就出现了一个这样的例子(本来就赚不到几块钱,还赔得倾家荡产),所以无法在公开项目中使用这一功能。即使平台、用户用此功能,是用来获取RSS,全程非商业,为了避免纠纷,所以无法使用这一功能,只能用户自行研究。

wget+PHP,实现在(隔开)线(隔开)(隔开)理的原理和步骤很简单,核心的程序部分不到0.5K,步骤如下:

1. 建立一个abc.php。
2. 要访问的地址为http://域名或IP/abc.php?http://RSS地址
abc.php写入这句获取地址栏:$q2=$_SERVER['REQUEST_URI'];
$q3=strpos($q2,'?');
$i1=substr($q2,$q3+1); //获取RSS地址
3. abc.php用system()函数调用Shell命令,括号里写上wget语句。
wget命令,Apache或Nginx即使没有root权限,也可以调用wget命令并写入。
wget所有的VPS都支持,虚拟主机不支持。
4. abc.php用readfile()或include()调用自动下载的RSS文件。
5. 用unlink()删除该RSS文件。

0条评论:

发表评论:
名字: (*必填)
博客: (可省)

正文:

  记住信息?

王志勇:1980-09-26 (44周岁)
程序设计,前端设计。

版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。

与此相关的链接
自由勇专栏

Blog存档 Archives

2022年07月
2022年06月(15)
2022年05月(20)
2022年04月(16)
2022年03月(9)
2022年02月(9)
2022年01月(10)
2021年 +

2020年 +
2019年 +
2018年 +
2016年-2017年(9)
2014年06月-09月(10)
2013年 +
2012年 +
2011年 +
2010年 +
2009年 +
2008年 +
2007年 +
2006年 +
2005年09月(4)

Copyright © 2006-2024 auiou.com All rights reserved.
此Blog程序由王志勇编写