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实现支持目录FTP上传下载文件的方法
Jun 03 Python
Python中矩阵库Numpy基本操作详解
Nov 21 Python
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
Jan 16 Python
初探TensorFLow从文件读取图片的四种方式
Feb 06 Python
Python利用splinter实现浏览器自动化操作方法
May 11 Python
python3连接MySQL数据库实例详解
May 24 Python
详解Django-auth-ldap 配置方法
Dec 10 Python
Python网络爬虫之爬取微博热搜
Apr 18 Python
python set内置函数的具体使用
Jul 02 Python
selenium2.0中常用的python函数汇总
Aug 05 Python
解决Django后台ManyToManyField显示成Object的问题
Aug 09 Python
详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库
Jan 24 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
ajax+php打造进度条代码[readyState各状态说明]
2010/04/12 PHP
php根据分类合并数组的方法实例详解
2013/11/06 PHP
destoon安全设置中需要设置可写权限的目录及文件
2014/06/21 PHP
PHP中的命名空间相关概念浅析
2015/01/22 PHP
又十个超级有用的PHP代码片段
2015/09/24 PHP
jquery Firefox3.5中操作select的问题
2009/07/10 Javascript
javascript处理table表格的代码
2010/12/06 Javascript
JS操作数据库的实例代码
2013/10/17 Javascript
JS判断不能为空实例代码
2013/11/26 Javascript
了不起的node.js读书笔记之例程分析
2014/12/22 Javascript
使用JavaScript实现连续滚动字幕效果的方法
2015/07/07 Javascript
JavaScript中this详解
2015/09/01 Javascript
自己动手写的jquery分页控件(非常简单实用)
2015/10/28 Javascript
js简单判断flash是否加载完成的方法
2016/06/21 Javascript
Bootstrap字体图标无法正常显示的解决方法
2016/10/08 Javascript
微信小程序自定义组件实现tabs选项卡功能
2018/07/14 Javascript
微信小程序实现自定义加载图标功能
2018/07/19 Javascript
js中apply()和call()的区别与用法实例分析
2018/08/14 Javascript
微信小程序实现的picker多级联动功能示例
2019/05/23 Javascript
解决element-ui里的下拉多选框 el-select 时,默认值不可删除问题
2020/08/14 Javascript
[06:04]DOTA2英雄梦之声Vol19卓尔游侠
2014/06/20 DOTA
web.py中调用文件夹内模板的方法
2014/08/26 Python
详解Python中的__new__()方法的使用
2015/04/09 Python
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
2017/12/11 Python
windows下 兼容Python2和Python3的解决方法
2018/12/05 Python
python 判断字符串中是否含有汉字或非汉字的实例
2019/07/15 Python
Room Mate Hotels美国:西班牙酒店品牌
2018/04/10 全球购物
main 函数执行以前,还会执行什么代码
2013/04/17 面试题
电脑饰品店的创业计划书
2014/01/21 职场文书
装饰公司活动策划方案
2014/08/23 职场文书
社区助残日活动总结
2014/08/29 职场文书
开展批评与自我批评心得体会
2014/10/17 职场文书
信息技术教研组工作总结
2015/08/13 职场文书
市语委办2016年第十九届“推普周”活动总结
2016/04/05 职场文书
关于Vue中的options选项
2022/03/22 Vue.js
Java实现经典游戏泡泡堂的示例代码
2022/04/04 Java/Android