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/

  • 相关阅读:
    mysql导出csv文件
    httpclient设置proxy与proxyselector
    91删除数据
    使用RestTemplate post方式提交表单数据
    bootstrap获取总条目数
    获取字符串已utf-8表示的字节数
    mongo批量更新
    重庆大学计算机917考研分析(定期更新考研信息)
    卷积
    LaTeX中自定义enumerate的编号格式
  • 原文地址:https://www.cnblogs.com/wang102030/p/14480914.html
Copyright © 2011-2022 走看看