为什么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 (41周岁)
程序设计,前端设计。

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

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

Blog存档 Archives

2021年01月(30)
2020年12月(19)
2020年11月(18)
2020年10月(15)
2020年09月(14)
2020年08月(14)
2020年07月(14)
2020年06月(16)
2020年05月(13)
2020年04月(18)
2020年03月(14)
2020年02月(15)
2020年01月(16)
2019年12月(11)
2019年11月(26)
2019年10月(25)
2019年09月(30)
2019年08月(10)
2019年07月(29)
2019年06月(30)
2019年05月(26)
2019年04月(30)
2019年03月(30)
2019年02月(30)
2019年01月(30)
2018年12月(30)
2018年11月(30)
2018年10月(30)
2018年09月(17)
2016年-2017年(9)
2014年06月-09月(10)
2013年 +

2012年 +
2011年 +
2010年 +
2009年 +
2008年 +
2007年 +
2006年 +
2005年09月(4)

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