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 相关文章推荐
利用Psyco提升Python运行速度
Dec 24 Python
用yum安装MySQLdb模块的步骤方法
Dec 15 Python
Python探索之实现一个简单的HTTP服务器
Oct 28 Python
基于python list对象中嵌套元组使用sort时的排序方法
Apr 18 Python
Python使用progressbar模块实现的显示进度条功能
May 31 Python
python 调用有道api接口的方法
Jan 03 Python
Python设计模式之观察者模式原理与用法详解
Jan 16 Python
python mysql断开重连的实现方法
Jul 26 Python
python中pygame安装过程(超级详细)
Aug 04 Python
Python 调用 Outlook 发送邮件过程解析
Aug 08 Python
pyenv与virtualenv安装实现python多版本多项目管理
Aug 17 Python
基于Python爬取51cto博客页面信息过程解析
Aug 25 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
天津市收音机工业发展史
2021/03/04 无线电
利用PHP实现与ASP Banner组件相似的类
2006/10/09 PHP
php中smarty模板条件判断用法实例
2015/06/11 PHP
js中top、clientTop、scrollTop、offsetTop的区别 文字详细说明版
2011/01/08 Javascript
Jquery对select的增、删、改、查操作
2015/02/06 Javascript
Eclipse引入jquery报错如何解决
2015/12/01 Javascript
BootStrap智能表单demo示例详解
2016/06/13 Javascript
Bootstrap实现导航栏的2种方式
2016/11/28 Javascript
基于JQuery及AJAX实现名人名言随机生成器
2017/02/10 Javascript
EsLint入门学习教程
2017/02/17 Javascript
ES6新特性之字符串的扩展实例分析
2017/04/01 Javascript
JS判断两个对象内容是否相等的方法示例
2017/04/10 Javascript
js经验分享 JavaScript反调试技巧
2018/03/10 Javascript
在ES5与ES6环境下处理函数默认参数的实现方法
2018/05/13 Javascript
mpvue小程序仿qq左滑置顶删除组件
2018/08/03 Javascript
JS实现长图上下滚动效果
2020/03/19 Javascript
Vue组件为什么data必须是一个函数
2020/06/11 Javascript
手写Vue源码之数据劫持示例详解
2021/01/04 Vue.js
Python中is与==判断的区别
2017/03/28 Python
Python+Wordpress制作小说站
2017/04/14 Python
在python tkinter中Canvas实现进度条显示的方法
2019/06/14 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
2019/09/17 Python
Python numpy.zero() 初始化矩阵实例
2019/11/27 Python
Python爬虫爬取、解析数据操作示例
2020/03/27 Python
记一次django内存异常排查及解决方法
2020/08/07 Python
python 实现有道翻译功能
2021/02/26 Python
中国跨境电商:Tomtop
2017/03/16 全球购物
Sneaker Studio捷克:购买运动鞋
2018/07/08 全球购物
医生自荐信
2013/10/11 职场文书
求职自荐信范文格式
2013/11/29 职场文书
企业车辆管理制度
2014/01/24 职场文书
高一新生军训感言
2014/03/02 职场文书
《望庐山瀑布》教学反思
2014/04/22 职场文书
超市七夕促销活动方案
2014/08/28 职场文书
Python进行区间取值案例讲解
2021/08/02 Python
python运行脚本文件的三种方法实例
2022/06/25 Python