gpt4 book ai didi

web-scraping - 当我不想处理所有404错误时,如何在Scrapy中返回404错误?

转载 作者:行者123 更新时间:2023-12-03 08:40:26 24 4
gpt4 key购买 nike

我想处理Scrapy中的404错误,但不是全部404错误情况。当我不想处理404错误时,该如何提出?

最佳答案

嗯,事实证明我可以使用errback处理来自特定请求的404响应。

import scrapy
from scrapy.spidermiddlewares.httperror import HttpError

class SampleSpider(scrapy.Spider):
name = 'sample'
allowed_domains = ['example.com']

start_urls = ["https://example.com"]

def parse(self, response):
if response.status in self.handle_httpstatus_list:
return Request(url="https://example.com/404url/", callback=self.parse_page, errback=self.after_404)

def parse_page(self, response):
# parse the page and extract items for success result

def after_404(self, failure):
if failure.check(HttpError) and failure.value.response.status == 404:
print ("We got 404!")

# handle the page for 404 status
else:
# Log others as error
self.logger.error(repr(failure))

这样,其他我不希望它处理404状态的请求仍然照常返回错误。

我是根据 https://docs.scrapy.org/en/latest/topics/request-response.html#topics-request-response-ref-errbacks制作的

关于web-scraping - 当我不想处理所有404错误时,如何在Scrapy中返回404错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62041262/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com