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 相关文章推荐
Win7上搭建Cocos2d-x 3.1.1开发环境
Jul 03 Python
浅谈python jieba分词模块的基本用法
Nov 09 Python
神经网络python源码分享
Dec 15 Python
python 地图经纬度转换、纠偏的实例代码
Aug 06 Python
详谈Python 窗体(tkinter)表格数据(Treeview)
Oct 11 Python
Python数据类型之Tuple元组实例详解
May 08 Python
Python中__repr__和__str__区别详解
Nov 07 Python
解决torch.autograd.backward中的参数问题
Jan 07 Python
TensorFlow加载模型时出错的解决方式
Feb 06 Python
python通用读取vcf文件的类(复制粘贴即可用)
Feb 29 Python
Python如何进行时间处理
Aug 06 Python
总结Python使用过程中的bug
Jun 18 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
搜索引擎技术核心揭密
2006/10/09 PHP
PHP连接MongoDB示例代码
2012/09/06 PHP
jQuery的三种$()
2009/12/30 Javascript
Jquery升级新版本后选择器的语法问题
2010/06/02 Javascript
addEventListener和attachEvent二者绑定的执行函数中的this不相同
2012/12/09 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
2014/01/08 Javascript
javascript获取隐藏元素(display:none)的高度和宽度的方法
2014/06/06 Javascript
js跨域请求数据的3种常用的方法
2015/12/01 Javascript
js实现鼠标拖动功能
2017/03/20 Javascript
Bootstrap如何激活导航状态
2017/03/22 Javascript
微信小程序使用input组件实现密码框功能【附源码下载】
2017/12/11 Javascript
完美解决手机网页中输入框被输入法遮挡的问题
2017/12/19 Javascript
详解微信图片防盗链“此图片来自微信公众平台 未经允许不得引用”的解决方案
2019/04/04 Javascript
JS隐藏号码中间4位代码实例
2019/04/09 Javascript
webpack+vue.js构建前端工程化的详细教程
2020/05/10 Javascript
Python通过matplotlib画双层饼图及环形图简单示例
2017/12/15 Python
Python读写docx文件的方法
2018/05/08 Python
python+opencv+caffe+摄像头做目标检测的实例代码
2018/08/03 Python
python 使用opencv 把视频分割成图片示例
2019/12/12 Python
python数据爬下来保存的位置
2020/02/17 Python
pycharm 2018 激活码及破解补丁激活方式
2020/09/21 Python
python判断正负数方式
2020/06/03 Python
python爬虫基础之urllib的使用
2020/12/31 Python
Ratchet 模态框的实现
2020/08/19 HTML / CSS
美国正宗设计师眼镜在线零售商:EYEZZ
2019/03/23 全球购物
"火柴棍式"程序员面试题
2014/03/16 面试题
大学生入党思想汇报
2014/01/14 职场文书
教师学习培训邀请函
2014/02/04 职场文书
模具专业毕业推荐信
2014/03/08 职场文书
淘宝客服专员岗位职责
2014/04/11 职场文书
欢迎横幅标语
2014/06/17 职场文书
中文专业求职信
2014/06/20 职场文书
计算机应用专业自荐信
2014/07/05 职场文书
2015年营销工作总结范文
2015/04/23 职场文书
2015年反腐倡廉工作总结
2015/05/14 职场文书
劳务派遣管理制度(样本)
2019/08/23 职场文书