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  连接字符串(join %)
Sep 06 Python
Python中的包和模块实例
Nov 22 Python
python实现通过代理服务器访问远程url的方法
Apr 29 Python
Python的迭代器和生成器
Jul 29 Python
使用Python读取安卓手机的屏幕分辨率方法
Mar 31 Python
python 数字类型和字符串类型的相互转换实例
Jul 17 Python
详解django中使用定时任务的方法
Sep 27 Python
Python中利用aiohttp制作异步爬虫及简单应用
Nov 29 Python
django 2.2和mysql使用的常见问题
Jul 18 Python
使用python telnetlib批量备份交换机配置的方法
Jul 25 Python
opencv设置采集视频分辨率方式
Dec 10 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
Feb 27 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
静态的动态续篇之来点XML
2006/08/15 Javascript
javascript 日期常用的方法
2009/11/11 Javascript
javascript eval和JSON之间的联系
2009/12/31 Javascript
js 获取class的元素的方法 以及创建方法getElementsByClassName
2013/03/11 Javascript
jquery获得option的值和对option进行操作
2013/12/13 Javascript
详解JavaScript中jQuery和Ajax以及JSONP的联合使用
2015/08/13 Javascript
Javascript打印局部页面实例
2016/06/21 Javascript
AngularJS 实现弹性盒子布局的方法
2016/08/30 Javascript
javascript设置文本框光标的方法实例小结
2016/11/04 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
2017/03/06 Javascript
十大热门的JavaScript框架和库
2017/03/21 Javascript
JS获取数组中出现次数最多及第二多元素的方法
2017/10/27 Javascript
微信小程序实现全局搜索代码高亮的示例
2018/03/30 Javascript
webpack4 CSS Tree Shaking的使用
2018/09/03 Javascript
解决angularjs WdatePicker ng-model的问题
2018/09/13 Javascript
Vue Cli3 创建项目的方法步骤
2018/10/15 Javascript
react native 仿微信聊天室实例代码
2019/09/17 Javascript
layui的数据表格+springmvc实现搜索功能的例子
2019/09/28 Javascript
vue新建项目并配置标准路由过程解析
2019/12/09 Javascript
[02:04]2020年夜魇暗潮预告片
2020/10/30 DOTA
Python中实现参数类型检查的简单方法
2015/04/21 Python
Python入门之三角函数sin()函数实例详解
2017/11/08 Python
python、java等哪一门编程语言适合人工智能?
2017/11/13 Python
python实现批量图片格式转换
2020/06/16 Python
基于Python3.6+splinter实现自动抢火车票
2018/09/25 Python
Python实现多属性排序的方法
2018/12/05 Python
python实现转盘效果 python实现轮盘抽奖游戏
2019/01/22 Python
python修改字典键(key)的方法
2019/08/05 Python
TensorFlow学习之分布式的TensorFlow运行环境
2020/02/05 Python
大学生自我鉴定
2013/12/08 职场文书
物业管理毕业生的自我评价
2014/02/17 职场文书
北体毕业生求职信
2014/02/28 职场文书
竞选大队长演讲稿
2014/04/29 职场文书
高职教师先进事迹材料
2014/08/24 职场文书
2015年后勤工作总结范文
2015/04/08 职场文书
反腐倡廉心得体会2016
2016/01/13 职场文书