zoukankan      html  css  js  c++  java
  • scrapy参数-COOKIES_ENABLED

    当COOKIES_ENABLED是注释的时候scrapy默认没有开启cookie

    当COOKIES_ENABLED没有注释,设置为False的时候scrapy默认使用了settings里面的cookie

    当COOKIES_ENABLED设置为True的时候scrapy就会把settings的cookie关掉,使用自定义cookie

    也就是

    如果使用自定义cookie就把COOKIES_ENABLED设置为True

    如果使用settings的cookie就把COOKIES_ENABLED设置为False

    这里先给出我经过抓包测试,阅读源码等最终结论
    0. scrapy 中 Requests 类,可以使用 cookies 和 headers 两种方法添加 cookie ,

    1. COOKIES_ENABLED 默认为 True,注释掉 COOKIES_ENABLED 即使用默认值

    2. COOKIES_ENABLED = True 时:

      1. scrapy 启动 CookiesMiddleware 中间件,为请求自动添加服务器响应的 cookie,

      2. 如果我们在 Request 中,使用 cookies 参数添加 cookie 时, 我们添加的 cookie 会额外加入到请求头中,如果响应有重名设置,则覆盖。(即,cookies 参数的cookie优先,但是 response 里的 cookie 也一个不少)

      3. 如果我们使用 headers 参数添加 cookie,headers添加的 cookie 会失效,被响应 cookie 完全覆盖。(即,headers里设置的 cookie 无效)

    3. COOKIES_ENABLED = False 时:

      1. scrapy 关闭 CookiesMiddleware 中间件,response 设置的 cookie 失效

      2. 使用 cookies 设置的 cookie 失效。

      3. 使用 headers 设置的 cookie 保留。

    如果不太明白,那么从使用情景解释:

    1. 如果不想要任何 cookie,COOKIES_ENABLED = False, headers 里不要添加 cookie

    2. 想要自动设置全部的 cookie,或者在全部的cookie基础上进行部分更改, COOKIES_ENABLED = True,用cookies参数调整 cookie 设置

    3. 想要只用自己定义的 cookie,COOKIES_ENABLED=False,使用 headers 设置 cookie

    转发 https://blog.csdn.net/u013444182/article/details/105282050/

  • 相关阅读:
    插入排序Java实现
    WMI控制IIS(2)
    WMI控制IIS
    C语言中用qsort()快速排序
    list_for_each引起的问题
    c++数组地址
    Valgrind 使用简单说明检查内存泄露
    firefox 在UBUNTU下编译
    内存泄漏检测umdh
    ubuntu GIT 安装与使用
  • 原文地址:https://www.cnblogs.com/wang102030/p/14480914.html
Copyright © 2011-2022 走看看