2

squid プロキシの背後で実行されるアグリゲーター クライアントでpython feedparserを使用しています。cache-control: max-age=600リクエストでヘッダーを送信して、合理的に最新のレスポンスを取得したいと考えています。(現時点では、フィードが変更されてから数日後であっても、プロキシによってキャッシュからフィードが返されます。これはヒューリスティックな有効期限に基づいて妥当ですが、十分ではありません。)

これを行うための直接の API がフィードパーサーにないように見えるので、最善の方法は何ですか? ソースを変更したくありません。

更新: バグ224があり、部分的なパッチを使用して任意のヘッダーを追加する方法を求めていますが、まだマージされていません。それがおそらく最もクリーンな方法です。それ以外の場合は、urllib または feedparser のいずれかにモンキーパッチを適用する必要があるようです。うんざり。

4

2 に答える 2

2

引数のセマンティクスは変更されましたが(request_headers現在は呼び出されています)、このユースケースをサポートする必要のあるfeedparserの新しいリリースがあります。

于 2011-02-23T23:21:35.840 に答える
2

私には2つの方法があるようです:

1- http://code.google.com/p/feedparser/issues/detail?id=224が修正されるまで待ちます。送信できるようにするためのパッチを作成しましたextra_headers={'Cache-control': 'max-age=0'}

2- urllib2 にモンキーパッチを適用して、リクエストに追加のヘッダーを追加します。これが、feedparser を変更しない唯一の答えのようです。

より良い答えは大歓迎です...

update 2010-10-29パッチはアップストリームにマージされ、リリースを待っています

于 2010-09-02T05:17:38.857 に答える