scrapy 中 COOKIES_ENABLED 设置

Scrapy爬虫框架 Cookies 本地终端数据 在本教程中,我们深入探讨了Scrapy 2.6中的设置及其实际应用。通过对Cookies的基本概念、设置方法、以及实际应用的详细说明,旨在帮助你理解如何在Scrapy项目中有效地管理和使用Cookies。掌握Scrapy中的Cookies管理不仅能够提升爬虫的功能性和稳定性,还能使你在应对复杂网络环境时游刃有余。希望通过本教程,你能够更好地理解和运用Scrapy的Cookies管理机制,在实际项目中打造更强大的网络爬虫。 阅读详情

之前看到很多文章是这么说的,感觉不是那么准确。

当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

 

 

以下是我的测试过程

scrapy中,自动配置了 CookiesMiddleware , 当我们设置 COOKIES_ENABLED = True 时, 它会在我们获得服务器响应后,自动的将 response 设置的 cookie 添加到下一个request 中去,例如:

当我们设置 COOKIES_ENABLED 为 True 的时候,我们两次访问百度,

第一次访问没有携带cookie,请求头中没有设置cookie,百度的响应中有了setcookie,

随后第二次访问,scrrapy就自动携带了上次响应所设置的cookie

当我们设置 COOKIES_ENABLED 为 False 的时候, 同样的代码两次访问百度,第二次不再携带cookie信息

那么 当我们设置自己的cookie时,会怎么样?

COOKIES_ENABLED = True 时,第二次请求头如下:

显然scrapy框架加入了我们自定义cookie,同时也把 response 设置的 cookie 自动加入了

同时如果我们自己设置的 cookie 的键值和response所设置的重名,则会覆盖原来 response 设置的 cookie,

COOKIES_ENABLED = False 时,第二次请求头如下:

即使我们手动设置了cookie,仍然不起作用了。

至此,总结一下:

COOKIES_ENABLED = True,自动在后续的请求中添加响应的cookie,我们自己通过cookies设置的cookie会加入并覆盖到响应设置的cookie中

COOKIES_ENABLED = False,通过cookies设置的,以及响应设置的cookie,全部无效。

等等,问题来了,我想要设置自己的cookie,而不想添加任何 response 设置的多余的cookie,怎么办,,,

经过测试,使用 headers 参数可以添加,我们把 COOKIES_ENABLED 设置为 False,测试代码如下:

发出的请求头如下:

这样就只含有我们所设置的cookie了。

scrapy中如何设置应用cookies的方法(3种) 本人是python3.6 总的来说,scrapy框架中设置cookie有三种方式。 第一种:setting文件中设置cookie 当COOKIES_ENABLED是注释的时候scrapy默认没有开启cookie 当COOKIES_ENABLED没有注释设置为False的时候scrapy默认使用了settings里面的cookie 当COOKIES_ENABLED设置为True的时候scrapy就会把settings的cookie关掉,使用自定义cookie 所以当我使用settings的cookie的时候,又把COOKIES_ENABLED设置为True,scrapy就会把settings的c 立即下载

相关推荐

Windows系统下AutoDock 4.2.6安装避坑指南(附MGLTools配置技巧)

本文详细介绍了在Windows系统下安装和配置AutoDock 4.2.6的完整流程,特别针对分子对接研究中常见的软件安装问题提供了解决方案。从环境准备、分步安装到常见报错处理,涵盖MGLTools配置技巧、工作目录设置和环境变量优化,帮助科研人员快速搭建稳定的分子对接平台。

weixin_29234239的博客 313

关于 scrapy 中 COOKIES_ENABLED 设置 理解问题,看这里就够了

看了很多的文章, 感觉写的都有点扯淡 ,误人子弟 。 源码中 : 默认是注释掉的,但是上面的备注写的是开启状态(没关系, 不管)。 所以这个 就有了三个状态: 1. 第一个 源码的 注释状态: # Disable cookies (enabled by default) # COOKIES_ENABLED = False 这个状态下, 其实可以理解成 cookie 是开启的状态, 但是他的获取值 是通过源码的方法,直接获取到上层的cookie ,然后带到下一层去的。 2. ...

weixin_44532999的博客 1885

关于Kswapd的理解(一)

关于Kswapd的理解(一) 之前跟踪了MemAvailable的计算方式,其中watermark的计算花了很多精力,在学习的过程中看到一些资料中说watermark是给swapd使用的,于是乎,研究一下看看咯 本部分主要记录两个方面: 对于kswapd这个东西,从初学者(我)的角度出发会考虑哪些内容? 跟踪kswapd 初始化结构部分; 1. KSwapd机制 上图是还没有跟踪kswapd code的时候,对自己提出的一些疑问和自身的理解,主要是如下内容: kswapd 机制用来做什么:内存不足时

And乔的博客 2720

Scrapy 中的 Cookies 管理

在 Scrapy 中灵活运用和可以有效管理爬虫的 cookies 行为。无论是全局设置还是局部定制,合理配置 cookies 是确保爬虫对目标网站友好交互的关键。理解并应用这些配置可以帮助你提高爬虫的效率和适应性,特别是在面对复杂网站时。

一勺菠萝丶的博客 1994

YOLOv11改进有效系列目录 - 包含卷积、主干、检测头、注意力机制、Neck上百种创新机制 - 针对多尺度、小目标、遮挡、恶劣天气等问题

在一些特定情况下,目标检测任务由于多种因素的影响,变得更加复杂和困难。以下是几类常见的困难目标检测场景:1. 小目标检测定义:小目标检测是指当目标在图像中的占比非常小时,模型需要准确识别和定位这些目标。典型场景包括远程监控、卫星图像分析等。挑战1. 低分辨率:由于目标在图像中占据像素较少,细节缺失,特征提取难度增加。2. 特征不足:小目标缺乏明显的形状和纹理特征,容易被复杂背景淹没。3. 检测难度大:由于小目标与背景之间的对比度较低,误检的几率上升。4. 数据不平衡。

qq_64693987的博客 4万+

什么是华为OD?怎么才能通过华为OD机试?华为OD机试怎么刷题?(2024最新华为OD机试E卷更新中)

华为OD是Outsourcing Dispacth模式,是华为和外企德科联合招聘的简称。目前华为大多数是OD招聘。OD模式也是华为提出的一种新的用工形式,每年都会从OD项目挑优秀员工转为正编。所有OD和正式员工一样对待,没有差别,部门平时开会、评审等活动都是一起参加的,是同薪同酬,都是由华为的HR直接定的薪资,看的是我们技术能力。华为是大企业,能到华为上班也是有能力的,每个部门都有好多职位,是金子,在哪都会发光。

KJ.JK 11万+

爬虫基础知识

注意:cookie内容要以键值对的形式存在。重载start_requests方法。

7546

NSGA-II 多目标优化 —— 理论、案例与交互式 GUI 实现

本文详细介绍了 NSGA-II 多目标优化算法的基本原理、数学模型和实现流程。从非支配排序、拥挤距离计算到遗传操作,NSGA-II 通过对种群进行分层和排序,能够有效求解多目标优化问题,获得 Pareto 前沿解集。通过机械结构优化、资源分配和控制参数调优等典型案例,我们展示了 NSGA-II 在实际工程中的广泛应用。为帮助工程师和研究者更直观地理解算法求解过程,本文提供了基于 Python 与 PyQt6 的交互式 GUI 演示系统代码示例。

闲人编程的博客 2120

scrapy中custom_settings的COOKIES_ENABLED是什么意思?COOKIES_ENABLED=T说明可以在scrapy.FormReques中使用cookies

settings的COOKIES_ENABLED=True,默认参数说明可以使用scrapy.FormReques中使用cookiesCOOKIES_ENABLED=Flase说明cookies只能写在Headers请求头里。

朴拙科技的博客 365

YOLOV26详解 从原理到部署

计算机视觉领域最具影响力的目标检测框架迎来重大里程碑。2026年1月,Ultralytics 正式发布 YOLOv26——这不是一次简单的版本迭代,而是一场面向边缘计算时代的架构重构。本专栏基于 Ultralytics 官方技术白皮书、YOLO Vision 2025 大会首发内容及国际前沿研究成果,系统拆解 YOLOv26 从算法原理到工程落地的全栈技术体系。与常规教程不同,我们聚焦与,帮助你在端侧 AI 部署的实战中掌握核心竞争力。

u012133341的博客 2025

053、坏点校正(DPC)进阶:静态坏点标定与动态坏点检测算法对比

文章摘要: 本文深入探讨了图像传感器坏点校正(DPC)技术,重点对比静态坏点标定与动态坏点检测算法。作者结合真实案例,指出静态标定在高增益场景下的局限性,并详细解析动态检测的核心算法、参数调优及常见误检问题(如边缘/纹理干扰)。提出“静态为主+动态为辅”的混合方案,强调阈值需随增益、亮度和温度自适应调整。文末总结六条工程建议,包括避免固定阈值、优先使用中值替换、定期更新坏点表等,强调DPC是图像质量的基础防线,需结合传感器特性综合优化。

zzfmlxs的博客 264

【爬虫】Scrapy中Cookie设置的一些测试

00. 环境 scrapy:2.3.0 python:3.7 01. Scrapy中设置Cookie的几种方法  在scrapy中主要有以下几种设置cookie的方法,其中第一种和第三种可以直接使用网页中复制过来str类型的cookie,第二种和第四种需要设置为dict类型的cookie 1.1 利用seetings文件中的DEFAULT_REQUEST_HEADERS设置cookie DEFAULT_REQUEST_HEADERS = { 'Accept': 'text/html,applic

广埠屯小拉登的博客 592

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

scrapy中如何设置应用cookies(三种方式)

本人是python3.6 总的来说,scrapy框架中设置cookie有三种方式。 第一种:setting文件中设置cookie 当COOKIES_ENABLED是注释的时候scrapy默认没有开启cookie 当COOKIES_ENABLED没有注释设置为False的时候scrapy默认使用了settings里面的cookie 当COOKIES_ENABLED设置为True的时候scr...

peiwang245的博客 3788

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

scrapy中如何设置应用cookies

原文:https://blog.youkuaiyun.com/Thoms_/article/details/82977036 本人是python3.6 总的来说,scrapy框架中设置cookie有三种方式。 第一种:setting文件中设置cookie 当COOKIES_ENABLED是注释的时候scrapy默认没有开启cookie 当COOKIES_ENABLED没有注释设置为False的时候s...

fuck487的博客 3万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

scrapy设置headers,cookies

scrapy中有三种方式设置headers,cookies setting中设置cookie middlewares中设置cookie sipder文件中重写start_requests方法 这里记录第三种,重写start_requests方法,这里以豆瓣网为例 一、设置请求头headers 在start_request中新增 headers = { 'User-Agent'...

池边的树的博客 1万+

scrapy框架中cookie的设置路径

总的来说,scrapy框架中设置cookie有三种方式。 第一种:setting中设置cookie 当COOKIES_ENABLED是注释的时候scrapy默认没有开启cookie 当COOKIES_ENABLED没有注释设置为False的时候scrapy默认使用了settings里面的cookie 当COOKIES_ENABLED设置为True的时候scrapy就会把settings的c...

Thoms_的博客 4172

解决scrapy设置cookie中间件时遇到的问题

直接给出答案:注释掉COOKIES_ENABLED 解释COOKIES_ENABLED作用: 当COOKIES_ENABLED是注释的时候scrapy默认没有开启cookie 当COOKIES_ENABLED没有注释设置为False的时候scrapy默认使用了settings里面的cookie 当COOKIES_ENABLED设置为True的时候scrapy就会把settings的cookie关掉,使用自定义cookie 补充:downloader中间件下如何实现请求携带cookie 在scrapy项目

Chenftli的博客 1557

scrapy使用cookie的三种方式

点击上方“Python学习开发”,选择“加为星标”第一时间关注Python技术干货!1.如果是在headers中使用defstart_requests(self): ...

muzico425的博客 2404

关于scrapy框架中cookie的设置

当COOKIES_ENABLED是注释的时候scrapy默认没有开启cookie 当COOKIES_ENABLED没有注释设置为False的时候scrapy默认使用了settings里面的cookie 当COOKIES_ENABLED设置为True的时候scrapy就会把settings的cookie关掉,使用自定义cookie 所以当我使用settings的cookie的时候,又把COOK...

学习python 747

scrapy cookies设置的相关问题

scrapy settings.py 文件中 COOKIES_ENABLED 用来控制程序是否开启cookies跟踪保持会话,默认情况下,COOKIES_ENABLED = True,需要注意以下几点 1.当COOKIES_ENABLED = True的时候, 可以在爬虫文件的回调方法中,如def parse(self, response)中,通过打印response.request.header...

qq_29570381的博客 627

【爬虫】禁用cookie,自动限速

如果用不到cookies的,就不要让对方知道你的cookies--设置--- COOKIES_ENABLED = False ROBOTSTXT_OBEY = False#限速 COOKIES_ENABLED = False #是否开启扩展 自定义setting中的参数可以这样写: 在spider.py文件中: custom_settings={ "CO...

qq_35810838的博客 385

Scrapy 的headers中cookie不生效的问题

scrapy的cookie不生效,需要在项目的settings文件中修改 # Disable cookies (enabled by default) . COOKIES_ENABLED = False 这样你spiders中的cookie才会生效

legendary_Dragon的博客 2556

Scrapy爬虫cookies设置的坑

scrapy的settings文件的COOKIES_ENABLED: 当COOKIES_ENABLED是注释的时候scrapy默认没有开启cookie 当COOKIES_ENABLED没有注释设置为False的时候scrapy默认使用了settings里面的cookie 当COOKIES_ENABLED设置为True的时候scrapy就会把settings的cookie关掉,使用自定义coo...

lizibin1987的博客 667

scrapy cookie 问题

COOKIES_ENABLED 默认: True 是否启用cookiesmiddleware。如果关闭,cookies将不会发送给web server。 COOKIES_DEBUG 默认: False 如果启用,Scrapy将记录所有在request(cookie 请求头)发送的cookies及response接收到的cookies(set-cookie接收头) 转载于:ht...

aixie0138的博客 277
上一篇: pytorch 使用gpu
下一篇: scrapy 更改模板
Leri_X
博客等级 码龄10年 26粉丝 56原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值