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中的输入和输出功能进行读取和写入的教程
Apr 14 Python
使用Python的判断语句模拟三目运算
Apr 24 Python
在类Unix系统上开始Python3编程入门
Aug 20 Python
python链接oracle数据库以及数据库的增删改查实例
Jan 30 Python
Python基于更相减损术实现求解最大公约数的方法
Apr 04 Python
django 实现电子支付功能的示例代码
Jul 25 Python
Python3对称加密算法AES、DES3实例详解
Dec 06 Python
解决python使用list()时总是报错的问题
May 05 Python
python与c语言的语法有哪些不一样的
Sep 13 Python
Python3获取cookie常用三种方案
Oct 05 Python
flask项目集成swagger的方法
Dec 09 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
Feb 26 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删除目录及目录下所有文件的方法详解
2013/06/06 PHP
php四种基础算法代码实例
2013/10/29 PHP
php通过sort()函数给数组排序的方法
2015/03/18 PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
2016/06/15 PHP
Yii2实现自定义独立验证器的方法
2017/05/05 PHP
jquery offset函数应用实例
2012/11/14 Javascript
JS 数字转换研究总结
2013/12/26 Javascript
使用jQuery实现图片遮罩半透明坠落遮挡
2015/03/16 Javascript
通过设置CSS中的position属性来固定层的位置
2015/12/14 Javascript
浅析location.href跨窗口调用函数
2016/11/22 Javascript
使用JavaScript为一张图片设置备选路径的方法
2017/01/04 Javascript
Vue系列:通过vue-router如何传递参数示例
2017/01/16 Javascript
vue-cli单页应用改成多页应用配置详解
2017/07/14 Javascript
element 结合vue 在表单验证时有值却提示错误的解决办法
2018/01/22 Javascript
Vue组件通信的几种实现方法
2019/04/25 Javascript
vue Tab切换以及缓存页面处理的几种方式
2019/11/05 Javascript
对于Python的框架中一些会话程序的管理
2015/04/20 Python
Python 使用指定的网卡发送HTTP请求的实例
2019/08/21 Python
Python从列表推导到zip()函数的5种技巧总结
2019/10/23 Python
Python脚本导出为exe程序的方法
2020/03/25 Python
keras CNN卷积核可视化,热度图教程
2020/06/22 Python
Python使用urlretrieve实现直接远程下载图片的示例代码
2020/08/17 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
2020/11/01 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
2020/11/26 Python
Waterford加拿大官方网站:世界著名的水晶杯品牌
2016/11/01 全球购物
飞利浦西班牙官方网站:Philips西班牙
2020/02/17 全球购物
怎样声明子类
2013/07/02 面试题
AJAX都有哪些有点和缺点
2012/11/03 面试题
大学生个人自荐信样本
2014/03/02 职场文书
社团活动总结格式
2014/08/29 职场文书
2015毕业寄语大全
2015/02/26 职场文书
毕业晚宴祝酒词
2015/08/11 职场文书
2016公务员年度考核评语
2015/12/01 职场文书
2019职场单身人才调研报告:互联网行业单身比例最高
2019/08/07 职场文书
Python集合set()使用的方法详解
2022/03/18 Python
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
2022/06/14 MySQL