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数据结构之图深度优先和广度优先实例详解
Jul 08 Python
Python学习教程之常用的内置函数大全
Jul 14 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
Aug 30 Python
python切片及sys.argv[]用法详解
May 25 Python
Python3中编码与解码之Unicode与bytes的讲解
Feb 28 Python
python的内存管理和垃圾回收机制详解
May 18 Python
Python进阶:生成器 懒人版本的迭代器详解
Jun 29 Python
python实现列表的排序方法分享
Jul 01 Python
python视频按帧截取图片工具
Jul 23 Python
基于Tensorflow使用CPU而不用GPU问题的解决
Feb 07 Python
Python爬取豆瓣数据实现过程解析
Oct 27 Python
python自动计算图像数据集的RGB均值
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
PHP如何通过传引用的思想实现无限分类(代码简单)
2015/10/13 PHP
CodeIgniter分页类pagination使用方法示例
2016/03/28 PHP
PHP经典算法集锦【经典收藏】
2016/09/14 PHP
php获取当前月与上个月月初及月末时间戳的方法
2016/12/05 PHP
php fread函数使用方法总结
2019/05/28 PHP
基于JQuery的访问WebService的代码(可访问Java[Xfire])
2010/11/19 Javascript
基于JQuery实现的图片自动进行缩放和裁剪处理
2014/01/31 Javascript
jQuery链使用指南
2015/01/20 Javascript
JavaScript基础篇(3)之Object、Function等引用类型
2015/11/30 Javascript
js 动态添加元素(div、li、img等)及设置属性的方法
2016/07/19 Javascript
JavaScript 继承详解(六)
2016/10/11 Javascript
require.js+vue开发微信上传图片组件
2016/10/27 Javascript
JS实现的tab切换选项卡效果示例
2017/02/28 Javascript
HTML中使背景图片自适应浏览器大小实例详解
2017/04/06 Javascript
解决浏览器会自动填充密码的问题
2017/04/28 Javascript
基于 webpack2 实现的多入口项目脚手架详解
2017/06/26 Javascript
史上最全JavaScript数组去重的十种方法(推荐)
2017/08/17 Javascript
vue自定义指令directive实例详解
2018/01/17 Javascript
前端防止用户重复提交js实现代码示例
2018/09/07 Javascript
axios如何取消重复无用的请求详解
2019/12/15 Javascript
[45:34]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.18
2020/12/19 DOTA
Python中处理unchecked未捕获异常实例
2015/01/17 Python
在Python中操作字符串之replace()方法的使用
2015/05/19 Python
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
2019/08/06 Python
基于Python执行dos命令并获取输出的结果
2019/12/30 Python
Kmeans均值聚类算法原理以及Python如何实现
2020/09/26 Python
python3实现飞机大战
2020/11/29 Python
北京鼎普科技股份有限公司软件测试面试题
2012/04/07 面试题
幼儿园元旦亲子活动方案
2014/02/17 职场文书
幼儿园的门卫岗位职责
2014/04/10 职场文书
村级换届选举方案
2014/05/10 职场文书
八项规定对照检查材料
2014/08/31 职场文书
Python基础之字符串格式化详解
2021/04/21 Python
教你怎么用PyCharm为同一服务器配置多个python解释器
2021/05/31 Python
CSS 左边固定宽右边自适应的6种方法
2022/05/15 HTML / CSS