0
私は比較的新しい治療法です。私はいくつかのページが正しく読み込まれない状況に遭遇しています。私はそのタスクを2回再試行して、正しく動作するようにします。 404エラーは表示されませんが、欠落している要素が原因で結果が解析されないことに注意してください。どのように私は失敗時に治療タスクを再試行しますか
これは数百のうちのほんのわずかのケースで発生し、次回再試行するときに再現できません。 (応答本体全体をキャプチャして確認)
これを処理するにはどうすればよいでしょうか?
私は
def parse(self, response):
try:
#do something
yield result
except:
yield Request(response.url, callback=self.parse)
をやってみましたが、私は、これらがscrapyにより重複として濾過し、認識なっていると思います。この問題に近づく最善の方法は何でしょうか?
、あなたは '降伏要求(response.url、コールバック= self.parse、dont_filter =真)' –
おかげで多くを使用することができ、それが役立ちます。とにかく、私は本当の失敗のために再試行を終わらせないために反復回数を制限することができます。 – pankaj
Exceptionで再試行のために設定した条件になります。再試行する例外を絞り込むことができます。また、['RetryMiddleware']のようにリクエストの' meta'にカウントを保存することもできます(https://github.com/scrapy/scrapy/blob/ebef6d7c6dd8922210db8a4a44f48fe27ee0cd16/scrapy/downloadermiddlewares/retry.py#L62) –