私は解決策を見つけようとして立ち往生しました...
My Scrapyスパイダーはサイトをクロールしてアイテムにデータを取得し、スクレイピングされたデータに基づいてリクエストを返し、アイテムを完了するために他のサイトをクロールします。
2番目のURLがエラーを返すことがあるため、アイテムが出力されないことがあります。
アイテムをerrback関数に運ぶにはどうすればよいですか?
前もって感謝します。
私は解決策を見つけようとして立ち往生しました...
My Scrapyスパイダーはサイトをクロールしてアイテムにデータを取得し、スクレイピングされたデータに基づいてリクエストを返し、アイテムを完了するために他のサイトをクロールします。
2番目のURLがエラーを返すことがあるため、アイテムが出力されないことがあります。
アイテムをerrback関数に運ぶにはどうすればよいですか?
前もって感謝します。
ドキュメントから:
errback (callable) – リクエストの処理中に例外が発生した場合に呼び出される関数。これには、404 HTTP エラーなどで失敗したページが含まれます。最初のパラメーターとして Twisted Failure インスタンスを受け取ります。
ラムダを使用してみてください:
...
yield Request(..., errback=lambda failure, item=item: self.on_error(failure, item))
def on_error(self, failure, item):
...