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模块学习 re 正则表达式
May 19 Python
python函数中return后的语句一定不会执行吗?
Jul 06 Python
python中set()函数简介及实例解析
Jan 09 Python
python随机数分布random测试
Aug 27 Python
python读取txt文件,去掉空格计算每行长度的方法
Dec 20 Python
Python GUI编程完整示例
Apr 04 Python
Python基于scipy实现信号滤波功能
May 08 Python
Python第三方库的几种安装方式(小结)
Apr 03 Python
django 装饰器 检测登录状态操作
Jul 02 Python
Java Unsafe类实现原理及测试代码
Sep 15 Python
pycharm 关闭search everywhere的解决操作
Jan 15 Python
python3中apply函数和lambda函数的使用详解
Feb 28 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/05 PHP
YII路径的用法总结
2014/07/09 PHP
php保存二进制原始数据为图片的程序代码
2014/10/14 PHP
PHP多线程编程之管道通信实例分析
2015/03/07 PHP
PHP数组Key强制类型转换实现原理解析
2020/09/01 PHP
js计数器代码
2006/11/04 Javascript
js日期对象兼容性的处理方法
2014/01/28 Javascript
基于jQuery实现的QQ表情插件
2015/08/25 Javascript
jQuery实现滚动切换的tab选项卡效果代码
2015/08/26 Javascript
javascript图片预加载完整实例
2015/12/10 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
2016/11/23 Javascript
webpack实现热更新(实施同步刷新)
2017/07/28 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
2018/01/15 Javascript
JQuery Ajax动态加载Table数据的实例讲解
2018/08/09 jQuery
Vue注册组件命名时不能用大写的原因浅析
2019/04/25 Javascript
如何自定义微信小程序tabbar上边框的颜色
2019/07/09 Javascript
vue filter 完美时间日期格式的代码
2019/08/14 Javascript
vue使用swiper.js重叠轮播组建样式
2019/11/14 Javascript
在Python的Django框架中调用方法和处理无效变量
2015/07/15 Python
Django实现简单分页功能的方法详解
2017/12/05 Python
python Django中models进行模糊查询的示例
2019/07/18 Python
python爬虫增加访问量的方法
2019/08/22 Python
python实现七段数码管和倒计时效果
2019/11/23 Python
Python Tornado核心及相关原理详解
2020/06/24 Python
python pandas dataframe 去重函数的具体使用
2020/07/20 Python
Django haystack实现全文搜索代码示例
2020/11/28 Python
CSS3教程:边框属性border的极致应用
2009/04/02 HTML / CSS
一文彻底解决HTML5页面中长按保存图片功能
2019/06/10 HTML / CSS
加拿大最大的五金、家居装修和园艺产品商店:RONA
2017/01/27 全球购物
现代绅士日常奢侈品:Todd Snyder
2019/12/13 全球购物
无故旷工检讨书
2014/01/26 职场文书
公民授权委托书范本
2014/09/17 职场文书
幼儿园教师岗位职责
2015/04/02 职场文书
2015年计划生育协会工作总结
2015/05/13 职场文书
2016应届大学生自荐信模板
2016/01/28 职场文书
Win11 21h2可以升级22h2吗?看看你的电脑符不符合要求
2022/07/07 数码科技