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高并发异步服务器核心库forkcore使用方法
Nov 26 Python
python实现dict版图遍历示例
Feb 19 Python
用yum安装MySQLdb模块的步骤方法
Dec 15 Python
Python基础学习之常见的内建函数整理
Sep 06 Python
python3设计模式之简单工厂模式
Oct 17 Python
python+matplotlib绘制3D条形图实例代码
Jan 17 Python
Python编程深度学习绘图库之matplotlib
Dec 28 Python
python实现在cmd窗口显示彩色文字
Jun 24 Python
Django Python 获取请求头信息Content-Range的方法
Aug 06 Python
Python叠加矩形框图层2种方法及效果
Jun 18 Python
python else语句在循环中的运用详解
Jul 06 Python
python接入支付宝的实例操作
Jul 20 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
跟我学小偷程序之成功偷取首页(第三天)
2006/10/09 PHP
URL Rewrite的设置方法
2007/01/02 PHP
php判断邮箱地址是否存在的方法
2016/02/13 PHP
javascript setTimeout()传递函数参数(包括传递对象参数)
2010/04/07 Javascript
JQuery 学习笔记01 JQuery初接触
2010/05/06 Javascript
Script的加载方法小结
2011/01/12 Javascript
在新窗口打开超链接的方法小结
2013/04/14 Javascript
jQuery仿Excel表格编辑功能的实现代码
2013/05/01 Javascript
event对象获取方法总结在google浏览器下测试
2013/11/03 Javascript
javascript实现一个简单的弹出窗
2016/02/22 Javascript
javascript用正则表达式过滤空格的实现代码
2016/06/14 Javascript
JS实现HTML页面中动态显示当前时间完整示例
2018/07/30 Javascript
JS回调函数深入理解
2019/10/16 Javascript
微信小程序实现时间进度条功能
2020/11/17 Javascript
Vue解决echart在element的tab切换时显示不正确问题
2020/08/03 Javascript
[37:45]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第二场 12.09
2020/12/11 DOTA
win7 下搭建sublime的python开发环境的配置方法
2014/06/18 Python
简单的编程0基础下Python入门指引
2015/04/01 Python
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
使用python 爬虫抓站的一些技巧总结
2018/01/10 Python
1分钟快速生成用于网页内容提取的xslt
2018/02/23 Python
python 按不同维度求和,最值,均值的实例
2018/06/28 Python
Python基于百度云文字识别API
2018/12/13 Python
Python多线程原理与用法实例剖析
2019/01/22 Python
如何将PySpark导入Python的放实现(2种)
2020/04/26 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2020/05/08 Python
在主流系统之上安装Pygame的方法
2020/05/20 Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
2020/06/30 Python
css3动画效果小结(推荐)
2016/07/25 HTML / CSS
HTML5高仿微信聊天、微信聊天表情|对话框|编辑器功能
2018/04/23 HTML / CSS
在线学习西班牙语、法语或其他语言:Babbel.com
2018/02/07 全球购物
求职简历推荐信范文
2013/12/02 职场文书
2014保险公司内勤工作总结
2014/12/16 职场文书
在职证明范本
2015/06/15 职场文书
小学教师教学反思
2016/02/24 职场文书
Golang获取List列表元素的四种方式
2022/04/20 Golang