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原始套接字编程示例分享
Feb 21 Python
使用Python下的XSLT API进行web开发的简单教程
Apr 15 Python
python进阶_浅谈面向对象进阶
Aug 17 Python
Python算法之图的遍历
Nov 16 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
Oct 21 Python
Django 视图层(view)的使用
Nov 09 Python
对python numpy.array插入一行或一列的方法详解
Jan 29 Python
Python实现堡垒机模式下远程命令执行操作示例
May 09 Python
简单了解python的内存管理机制
Jul 08 Python
详解python中自定义超时异常的几种方法
Jul 29 Python
python英语单词测试小程序代码实例
Sep 09 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
Jun 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基于curl扩展制作跨平台的restfule 接口
2015/05/11 PHP
php实现的递归提成方案实例
2015/11/14 PHP
PHP+JS实现的商品秒杀倒计时用法示例
2016/11/15 PHP
php简单实现文件或图片强制下载的方法
2016/12/06 PHP
php中简单的对称加密算法实现
2017/01/05 PHP
PHP面向对象五大原则之开放-封闭原则(OCP)详解
2018/04/04 PHP
PHP单例模式模拟Java Bean实现方法示例
2018/12/07 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
2019/10/08 PHP
Jquery 表单验证类介绍与实例
2013/06/09 Javascript
网页中可关闭的漂浮窗口实现可自行调节
2013/08/20 Javascript
js实现背景图片感应鼠标变化的方法
2015/02/28 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
2017/03/22 jQuery
Js利用prototype自定义数组方法示例
2017/10/20 Javascript
Bootstrap模态对话框中显示动态内容的方法
2018/08/10 Javascript
vue项目使用axios发送请求让ajax请求头部携带cookie的方法
2018/09/26 Javascript
js实现查询商品案例
2020/07/22 Javascript
基于ajax实现上传图片代码示例解析
2020/12/03 Javascript
小程序角标的添加及绑定购物车数量进行实时更新的实现代码
2020/12/07 Javascript
[01:13]DOTA2群星解读国服召集令 一起说出回归的理由
2013/07/17 DOTA
详解Python中find()方法的使用
2015/05/18 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
2018/12/11 Python
Python利用heapq实现一个优先级队列的方法
2019/02/03 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
2020/05/09 Python
Python实现对word文档添加密码去除密码的示例代码
2020/12/29 Python
CSS3动画之利用requestAnimationFrame触发重新播放功能
2019/09/11 HTML / CSS
美国滑雪和滑雪板商店:Buckman
2018/03/03 全球购物
SportsDirect.com新加坡:英国第一体育零售商
2019/03/30 全球购物
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
英文版银行求职信
2013/10/09 职场文书
开学典礼感言
2014/02/16 职场文书
企业挂职心得体会
2014/09/10 职场文书
出生证明范本
2015/06/15 职场文书
微信小程序实现聊天室功能
2021/06/14 Javascript
NGINX 权限控制文件预览和下载的实现原理
2022/01/18 Servers
win10输入法不见了只能打出字母怎么解决?
2022/08/05 数码科技