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实现的重启关机程序实例
Aug 21 Python
Python批量按比例缩小图片脚本分享
May 21 Python
深入理解Django的自定义过滤器
Oct 17 Python
Tensorflow使用支持向量机拟合线性回归
Sep 07 Python
Python实现随机创建电话号码的方法示例
Dec 07 Python
详解Python字典的操作
Mar 04 Python
通过pycharm使用git的步骤(图文详解)
Jun 13 Python
pytorch 固定部分参数训练的方法
Aug 17 Python
windows环境中利用celery实现简单任务队列过程解析
Nov 29 Python
手把手教你将Flask应用封装成Docker服务的实现
Aug 19 Python
python 写一个性能测试工具(一)
Oct 24 Python
Python利用zhdate模块实现农历日期处理
Mar 31 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程序员应具有的7种能力小结
2014/11/27 PHP
PHP对象实例化单例方法
2017/01/19 PHP
PHP函数rtrim()使用中的怪异现象分析
2017/02/24 PHP
php实现简单加入购物车功能
2017/03/07 PHP
PHP tp5中使用原生sql查询代码实例
2020/10/28 PHP
jquery autocomplete自动完成插件的的使用方法
2010/08/07 Javascript
javascript实现依次输入input自动定焦
2014/12/23 Javascript
jquery简单图片切换显示效果实现方法
2015/01/14 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
2015/02/27 Javascript
包含中国城市的javascript对象实例
2015/08/03 Javascript
javascript常用经典算法实例详解
2015/11/25 Javascript
js实现简单的验证码
2015/12/25 Javascript
jQuery实现的简单分页示例
2016/06/01 Javascript
ES6中Class类的静态方法实例小结
2017/10/28 Javascript
微信小程序scroll-view仿拼多多横向滑动滚动条
2020/04/21 Javascript
Vue.js 父子组件通信的十种方式
2018/10/30 Javascript
[01:54]TI4西雅图DOTA2选手欢迎晚宴 现场报道
2014/07/08 DOTA
[02:07]TI9显影之尘系列 - Vici Gaming
2019/08/20 DOTA
分析python服务器拒绝服务攻击代码
2014/01/16 Python
python爬虫获取京东手机图片的图文教程
2017/12/29 Python
Python基于Flask框架配置依赖包信息的项目迁移部署
2018/03/02 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
2018/11/23 Python
Flask框架踩坑之ajax跨域请求实现
2019/02/22 Python
利用python numpy+matplotlib绘制股票k线图的方法
2019/06/26 Python
Python中字符串List按照长度排序
2019/07/01 Python
Python检查 云备份进程是否正常运行代码实例
2019/08/22 Python
django实现模板中的字符串文字和自动转义
2020/03/31 Python
Python 串口通信的实现
2020/09/29 Python
一款利用纯css3实现的360度翻转按钮的实例教程
2014/11/05 HTML / CSS
家庭户外服装:Hawkshead
2017/11/02 全球购物
中学老师的自我评价
2013/11/07 职场文书
简单而又朴实的个人求职信分享
2013/12/12 职场文书
保险公司晨会主持词
2014/03/22 职场文书
建房协议书
2014/04/11 职场文书
解除财产保全担保书
2014/05/20 职场文书
电子商务专业求职信范文
2015/03/19 职场文书