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编写类UNIX系统的命令行工具的教程
Apr 15 Python
在Python下利用OpenCV来旋转图像的教程
Apr 16 Python
自己使用总结Python程序代码片段
Jun 02 Python
Python两个内置函数 locals 和globals(学习笔记)
Aug 28 Python
Python实现的多进程和多线程功能示例
May 29 Python
python2.7 安装pip的方法步骤(管用)
May 05 Python
python函数的万能参数传参详解
Jul 26 Python
python给图像加上mask,并提取mask区域实例
Jan 19 Python
python+adb+monkey实现Rom稳定性测试详解
Apr 23 Python
django model 条件过滤 queryset.filter(**condtions)用法详解
May 20 Python
使用pytorch 筛选出一定范围的值
Jun 28 Python
python中xlutils库用法浅析
Dec 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中使用mysqli扩展库对mysql的操作
2013/07/03 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
2015/10/22 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
新浪的图片新闻效果
2007/01/13 Javascript
用一段js程序来实现动画功能
2007/03/06 Javascript
document.body.scrollTop 值总为0的解决方法 比较常见的标准问题
2009/11/30 Javascript
JSP跨iframe如何传递参数实现代码
2013/09/21 Javascript
javascript学习笔记(五)原型和原型链详解
2014/10/08 Javascript
Javascript学习笔记之数组的遍历和 length 属性
2014/11/23 Javascript
浅谈Javascript数组的使用
2015/07/29 Javascript
JavaScript实现点击单选按钮改变输入框中文本域内容的方法
2015/08/12 Javascript
JS截取字符串实例详解
2015/11/24 Javascript
借助FileReader实现将文件编码为Base64后通过AJAX上传
2015/12/24 Javascript
浅析JavaScript回调函数应用
2016/05/22 Javascript
手动初始化Angular的模块与控制器
2016/12/26 Javascript
vue计算属性和监听器实例解析
2018/05/10 Javascript
手把手教你用Node.js爬虫爬取网站数据的方法
2018/07/05 Javascript
原生js实现form表单序列化的方法
2018/08/02 Javascript
浅谈vue 单文件探索
2018/09/05 Javascript
Javascript中Math.max和Math.max.apply的区别和用法详解
2020/08/24 Javascript
基于p5.js 2D图像接口的扩展(交互实现)
2020/11/30 Javascript
python实现上传下载文件功能
2020/11/19 Python
python使用tensorflow保存、加载和使用模型的方法
2018/01/31 Python
python实现csv格式文件转为asc格式文件的方法
2018/03/23 Python
PYcharm 激活方法(推荐)
2020/03/23 Python
Python drop方法删除列之inplace参数实例
2020/06/27 Python
python3中calendar返回某一时间点实例讲解
2020/11/18 Python
HTML5 Canvas中绘制矩形实例
2015/01/01 HTML / CSS
Perfume’s Club英国官网:购买香水和护肤品
2019/11/02 全球购物
旷课检讨书大全
2014/01/21 职场文书
土地转让协议书
2014/04/15 职场文书
大学生学习计划书
2014/09/15 职场文书
学校领导班子对照检查材料
2014/09/24 职场文书
党员检讨书范文
2014/12/27 职场文书
办公用品质量保证书
2015/05/11 职场文书
Python实现抖音热搜定时爬取功能
2022/03/16 Python