私はそれが関連するかどうかわかりませんが、私はインラインリクエストライブラリを使用しています。悪い要求の後に治療が中止する
サイトのAPIにリクエストを行い、不正なリクエスト(400)を返すと、クローラが停止します。どうすればそれを続けることができますか?
下記の例では、本のISBNは「0046594062994」となっており、この本がないために、悪い要求が返されます(下のURLを入力してください) 。彼らは彼らが持っている本とうまく動作します。
~~~~~~~~~
@EDIT:私が見つけたが、それはインラインリクエストの既知の問題です。
"ミドルウェアは、非200ステータス応答を破棄または無視して、コールバックが実行を継続しないようにすることができます。これは、handle_httpstatus_allフラグを使用することで克服できます。
私はドキュメントが言う何をしようとしたが、それを行うには管理していませんでした。 何が間違っていますか?私のサンプルコードに追加された行を確認してください。
コード例:
response2 = yield scrapy.Request("https://api.bookscouter.com/v3/prices/sell/0046594062994.json")
response2.meta['handle_httpstatus_all'] = True
jsonresponse = loads(response2.body)
をチェックする必要があります。だからあなたはScrapyの新しいバージョンでそれを使うのを避けるべきです。 –
@Tarun Lalwani編集を確認してください。 – daniel
'yield scrapy.Request(" https://api.bookscouter.com/v3/prices/sell/0046594062994.json "、meta = {'handle_httpstatus_all':True})' –