2016-08-15 18 views
0

ステータスコード200のページを返すウェブサイトをクロールして、すべてが問題ないことを示唆しています。これにより、ページがscrapyのキャッシュに入れられます。キャッシュに治療応答が追加されないようにする

これらのページは後で再クロールします。しかし、キャッシュ内にある場合、再クロールされません。

httpcacheミドルウェアからprocess_response関数をオーバーロードするか、reponse htmlの特定の文字列を探して、200コードをエラーコードで上書きすることは可能ですか?

特定のレスポンスをキャッシュに保存しないように、どのようにするのが最も簡単な方法でしょうか。

+0

再度クロールすると、リクエストで 'dont_filter = True'を使用できません。 –

+0

私はすでにそれをやっています。たぶん私は使用しているプロキシミドルウェアと関係があります。今、私はそれを解決するためのカスタムhttpcacheポリシーを定義しようとしています... – Jabb

+0

どのようにあなたの仕事を教えてください。私はこの質問が将来的にはおそらく役に立つと考えている –

答えて

2

治療では、http応答をキャッシュするのにscrapy.downloadermiddlewares.httpcache.HttpCacheMiddlewareを使用します。あなただけのようにTrueに要求メタキーワードdont_cacheを設定することができ、このキャッシュを無視するには:また、上記

yield Request(url, meta={'dont_cache': True}) 

ドキュメントは、あなたもその中に興味を持っている場合は、設定でプロジェクト全体のそれを無効にする方法を述べています。

関連する問題