2

我在squid 代理后面运行的聚合器客户端中使用 python feedparser 。我希望它在请求中发送一个cache-control: max-age=600标头,以便我们得到一个合理的最新响应。(目前,代理从其缓存中返回提要,即使在它们更改几天后,这基于启发式到期是合理的,但还不够好。)

feedparser 中似乎没有任何直接的 api 来执行此操作,那么最好的方法是什么?我真的不想改变来源。

更新:有一个错误,224,要求一种添加任意标题的方法,带有部分补丁,但尚未合并。这可能是最干净的方式。否则,我似乎需要对 urllib 或 feedparser 进行monkeypatch。好。

4

2 回答 2

2

在我看来有两种方法:

1-等待http://code.google.com/p/feedparser/issues/detail?id=224修复。我贴了一个可以让你发送的补丁,extra_headers={'Cache-control': 'max-age=0'}我们看看他们是否接受。

2-monkeypatch 到 urllib2 以在请求中添加一些额外的标头,这似乎是不更改 feedparser 的唯一答案。

更好的答案非常欢迎...

更新 2010-10-29补丁现已在上游合并,等待发布

于 2010-09-02T05:17:38.857 回答
2

参数的语义已经改变(现在调用它request_headers),但是有一个新版本的 feedparser 应该支持这个用例。

于 2011-02-23T23:21:35.840 回答