scrapy中如何设置应用cookies的方法(3种)


Posted in Python onSeptember 22, 2020

本人是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的cookie关闭,

而且我也没使用自定义cookie,导致整个请求根本没有cookie,导致获取页面失败。

总结:

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

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

第二种:middlewares中设置cookie

在middlewares中的downloadermiddleware中的process_request中配置cookie,配置如下:

request.cookies={
'':'',
'':'',
}

等等。里面的cookie内容要以键值对的形式存在。

第三种:在spider爬虫主文件中,重写start_request方法,在scrapy的Request函数的参数中传递cookies

# 重载start_requests方法
  def start_requests(self):
    headers = {
          "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"}
    # 指定cookies
    cookies = {
          'uuid': '66a0f5e7546b4e068497.1542881406.1.0.0',
          '_lxsdk_cuid': '1673ae5bfd3c8-0ab24c91d32ccc8-143d7240-144000-1673ae5bfd4c8',
          '__mta': '222746148.1542881402495.1542881402495.1542881402495.1',
          'ci': '20',
          'rvct': '20%2C92%2C282%2C281%2C1',
          '_lx_utm': 'utm_source%3DBaidu%26utm_medium%3Dorganic',
          '_lxsdk_s': '1674f401e2a-d02-c7d-438%7C%7C35'}

        # 再次请求到详情页,并且声明回调函数callback,dont_filter=True 不进行域名过滤,meta给回调函数传递数据
    yield Request(detailUrl, headers=headers, cookies=cookies, callback=self.detail_parse, meta={'myItem': item}, dont_filter=True)

同时还要在setting中设置:

ROBOTSTXT_OBEY=False

到此这篇关于scrapy中如何设置应用cookies的方法(3种)的文章就介绍到这了,更多相关scrapy设置cookies内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python爬取网页中的图片(搜狗图片)详解
Mar 23 Python
Python中模块与包有相同名字的处理方法
May 05 Python
matplotlib设置legend图例代码示例
Dec 19 Python
详谈在flask中使用jsonify和json.dumps的区别
Mar 26 Python
python用BeautifulSoup库简单爬虫实例分析
Jul 30 Python
Python选择网卡发包及接收数据包
Apr 04 Python
使用OpCode绕过Python沙箱的方法详解
Sep 03 Python
python 3.6.7实现端口扫描器
Sep 04 Python
Python实现字符串中某个字母的替代功能
Oct 21 Python
django 文件上传功能的相关实例代码(简单易懂)
Jan 22 Python
python代码如何注释
Jun 01 Python
解决Keras中CNN输入维度报错问题
Jun 29 Python
Python浮点型(float)运算结果不正确的解决方案
Sep 22 #Python
如何使用PyCharm引入需要使用的包的方法
Sep 22 #Python
python 如何区分return和yield
Sep 22 #Python
Python中三维坐标空间绘制的实现
Sep 22 #Python
Pyinstaller打包Scrapy项目的实现步骤
Sep 22 #Python
Python使用pickle进行序列化和反序列化的示例代码
Sep 22 #Python
Python如何获取文件路径/目录
Sep 22 #Python
You might like
用php+javascript实现二级级联菜单的制作
2008/05/06 PHP
php程序效率优化的一些策略小结
2010/07/17 PHP
PHP向浏览器输出内容的4个函数总结
2014/11/17 PHP
PHP学习笔记之php文件操作
2016/06/03 PHP
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
jquery 如何动态添加、删除class样式方法介绍
2012/11/07 Javascript
JavaScript中的ubound函数使用实例
2014/11/04 Javascript
jQuery实用技巧必备(上)
2015/11/02 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
2016/05/30 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
2016/07/05 Javascript
javascript 数组去重复(在线去重工具)
2016/12/17 Javascript
NodeJS实现图片上传代码(Express)
2017/06/30 NodeJs
基于 Bootstrap Datetimepicker 联动
2017/08/03 Javascript
Vue.js实现的表格增加删除demo示例
2018/05/22 Javascript
基于axios 解决跨域cookie丢失的问题
2018/09/26 Javascript
JS使用对象的defineProperty进行变量监控操作示例
2019/02/02 Javascript
vue设置一开始进入的页面教程
2019/10/28 Javascript
Python中的闭包实例详解
2014/08/29 Python
python实现从ftp服务器下载文件的方法
2015/04/30 Python
python 使用pandas计算累积求和的方法
2019/02/08 Python
详解Python3中ceil()函数用法
2019/02/19 Python
Python 继承,重写,super()调用父类方法操作示例
2019/09/29 Python
Keras loss函数剖析
2020/07/06 Python
Under Armour美国官网:美国知名高端功能性运动品牌
2016/09/05 全球购物
德国隐形眼镜店:LuckyLens
2018/07/29 全球购物
Ben Sherman官方网站:英国男装品牌
2019/10/22 全球购物
Engel & Bengel官网:婴儿推车、儿童房家具和婴儿设备
2019/12/28 全球购物
Prototype如何更新局部页面
2013/03/03 面试题
自考生自我鉴定范文
2013/10/01 职场文书
写给妈妈的道歉信
2014/01/11 职场文书
校园文明标语
2014/06/13 职场文书
工地标语大全
2014/06/18 职场文书
教师对照四风自我剖析材料
2014/09/30 职场文书
小升初自荐信范文
2015/03/05 职场文书
漫画「古见同学有交流障碍症」第25卷封面公开
2022/03/21 日漫
python数字图像处理实现图像的形变与缩放
2022/06/28 Python