只有摘要的rss内容和咸鱼有什么区别?这里推荐一个比mercury-parser-api更好用的rss全文输出服务。

本文提供了搭建rss全文输出服务full-text-rss的步骤,对国内环境如何科学地抓取全文亦有所涉及,此服务配合自建rss阅读器tt-rss使用效果更好。

需求

为什么不用mercury-parser-api

  1. 没有权限设置选项
    这意味者要么限制其和阅读器服务处于同一个服务器中(localhost),要么通过反代开放到公网并通过防火墙限制访问IP,否则就是向全网公开的服务,任何人都能使用。
  2. 不支持代理
    国内网络环境你懂的,这样就限制其只能部署在国外服务器才能发挥全部作用。

fivefilters在线服务的不足之处

  1. 制作的feed链接为http
    墙连全文都不用看,只检查url中的关键字就能拦截了。自行搭建可以设为全部走https,这样中间人只能知道你访问的域名,全文和域名以外的url是加密的。
  2. 免费服务有限制
    主要是一次抓取的文章限制为3篇,且文末有一行文字链接的广告。

其实轻度使用足够了。本文推荐的full-text-rss比fivefilters的线上版本慢一版,不过自己搭建能使用全功能无限制。

安装配置apache

安装依赖包

1
2
sudo apt install php-tidy
sudo service apache2 reload

安装full-text-rss

克隆源码。国内搭建建议为默认的文件夹full-text-rss改名。

1
2
cd /var/www/example.com
sudo -u www-data git clone https://bitbucket.org/fivefilters/full-text-rss.git

配置。

1
2
3
cd full-text-rss
sudo -u www-data cp config.php custom_config.php
sudo -u www-data vi config.php

修改以下选项。其中api_keys改成自用密码,设成需密码才能使用此服务,proxy_servers为http代理设置,此处示例为privoxy的默认设置。如此设置后ftr将全局走代理,所以设置allow_proxy_overridetrue,如果不需代理则在生成的全文feed地址后加上&proxy=0

1
2
3
4
$options->key_required = true;
$options->api_keys[1] = 'your-secret-token';
$options->proxy_servers = array('privoxy'=>array('host'=>'127.0.0.1:8118'));
$options->allow_proxy_override = true;

注:国外服务器搭建则无需代理,proxy_servers不要修改,默认即可。

更新网站定制抓取规则

没有规则的ftr和咸鱼一样。克隆官方网站规则集。

1
2
3
cd /var/www/example.com/full-text-rss/site_config
sudo rm -rf standard
sudo -u www-data git clone https://github.com/fivefilters/ftr-site-config.git standard

定制网站抓取规则

官方网站规则不带的网站可以自行设定抓取规则,好在fivefilters也提供了图形化的规则定制工具
输入需定制网站的任意一篇文章,点Go进入新页面,鼠标选定文章的全文范围,然后点击Download Full-Text RSS site config下载定制规则。
将规则文件上传到site_config/custom/文件夹下。

懒人包

觉得麻烦的话可以直接用我搭的ftr服务:
https://hk.mjyai.com/ftr/
Access key不用填,无key的抓取上限是5,应该够用了。低调使用,请勿滥用。