0
Posted on 下午10:04:00 by Fan Zhang and filed under

  最近写了一个 GAE 应用,需要向外提供大量 Feed,很多以前不是问题的问题就出来了:

  1. 各个在线阅读器的抓取器对网站造成负担,尤其是当 Feed 很多的时候;
  2. 因为我提供的 Feed 有时效性,但是很多在线阅读器的抓取器不能正确识别 301 重定向和 410 永久删除,这就造成还会始终访问无效的地址;
  3. 现有的 Feed 托管服务基本都不支持批量托管,比如 Feedburner 和 Feedsky,只有一个 FeedCat 支持,但是就是它的 FeedCatBot 现在还在对我无效的网址进行抓取。

  不同的在线阅读器的抓取器也不同:

  1. Google Reader:一小时一次,User Agent 为 Feedfetcher-Google,我看以前人说它不支持 301,不过据我观察,它会接受 301 重定向,只是用户界面查看 Feed 地址还是原来的。但是 Feedfetcher-Google 不会再去抓取原地址。
  2. 抓虾:User Agent 为 Zhuaxia.com,支持 301 重定向,不过需要响应 Head 方法。它先用 Head 然后 Get。
  3. 豆瓣九点:完美支持 301 重定向。

  我最后的解决方案是:

  1. 自己编写了一个批量托管的 GAE 应用,使得原始服务不会受到太大压力,一部分转接到 Feed 托管服务上。
  2. Feed 托管服务针对实际 Feed 的不同状态返回相应的状态码和转向。
0
评论 : 网站提供大量 Feed 时的解决方案

发表评论