scrapy中间件汇总

downloader中间件:可以自定义中间件,及中间价优先级;

i.   如何新增downloader middleware?重写process_requestprocess_responseprocess_exception函数;

ii.  为什么要设计downloader middleware? 对request进行改写,或对下载行为进行规定。如规定是否发送cookie,规定缓存机制,规定重试机制,规定如何处理重定向数据等。

iii. 内置的downloader middleware有哪些?约13个

    CookiesMiddleware:是否向web server发送cookie
    DefaultHeadersMiddleware:将所有request的头设置为默认模式
    DownloadTimeoutMiddleware:设置request的timeout
    HttpAuthMiddleware:对来自特定spider的request授权
    HttpCacheMiddleware:给request&response设置缓存策略
    HttpCompressionMiddleware:
    ChunkedTransferMiddleware:
    HttpProxyMiddleware:给所有request设置http代理
    RedirectMiddleware:处理request的重定向
    MetaRefreshMiddleware:根据meta-refresh html tag处理重定向
    RetryMiddleware:失败重试策略
    RobotsTxtMiddleware:robots封禁处理
    UserAgentMiddleware:支持user agent重写

Spider中间件:可自定义中间件和优先级

iv.  如何添加新的spider中间件?重载process_spider_input、process_spider_output、process_spider_exception、process_start_requests

v.  内置的spider中间件有哪些?约5种

    DepthMiddleware:对抓取深度和深度优先级进行设置;
    HttpErrorMiddleware:设置成功码的范围
    OffsiteMiddleware:主域过滤
    RefererMiddleware:
    UrlLengthMiddleware:限定有效url的长度

 

posted @ 2020-04-15 13:57  cknds  阅读(215)  评论(0编辑  收藏  举报