scrapy中如何设置应用cookies的方法(3种)

 更新时间:2020年09月22日 14:54:24   作者:不屑哥  
这篇文章主要介绍了scrapy中如何设置应用cookies的方法(3种),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

本人是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中高效抓取数据的实战指南

    在数据驱动的时代,网络爬虫已成为获取信息的核心工具,本文将用通俗的语言,带您掌握Python爬虫结合代理IP抓取数据的全流程,希望对大家有一定的帮助
    2025-04-04
  • python ddt数据驱动最简实例代码

    python ddt数据驱动最简实例代码

    在本篇内容里我们给大家分享了关于python ddt数据驱动最简实例代码以及相关知识点,需要的朋友们跟着学习下。
    2019-02-02
  • Python 实现图像合成微缩效果

    Python 实现图像合成微缩效果

    合成微缩是一个使真实大小物体照片看起来像微缩模型照片的过程,也称为 Diorama Effect/Fillusion,照片的模糊部分模拟了通常在特写摄影中通常遇到的近景深度,从而使场景看起来比实际场景小得多,这篇文章主要介绍了Python 合成微缩效果,需要的朋友可以参考下
    2023-03-03
  • numpy实现RNN原理实现

    numpy实现RNN原理实现

    这篇文章主要介绍了numpy实现RNN原理实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 快速查询Python文档方法分享

    快速查询Python文档方法分享

    这篇文章主要介绍了快速查询Python文档方法分享,具有一定借鉴价值,需要的朋友可以参考下
    2017-12-12
  • Python实现生成指定大小文件的示例详解

    Python实现生成指定大小文件的示例详解

    这篇文章主要为大家详细介绍了Python如何实现生成指定大小文件,例如txt/图片/视频/csv等,文中的示例代码讲解详细,需要的可以参考下
    2023-08-08
  • Python实现解析参数的三种方法详解

    Python实现解析参数的三种方法详解

    这篇文章主要介绍了python解析参数的三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-07-07
  • numpy数组广播的机制

    numpy数组广播的机制

    这篇文章主要介绍了numpy数组广播的机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Python函数式编程指南(二):从函数开始

    Python函数式编程指南(二):从函数开始

    这篇文章主要介绍了Python函数式编程指南(二):从函数开始,本文讲解了定义一个函数、使用函数赋值、闭包、作为参数等内容,需要的朋友可以参考下
    2015-06-06
  • Python实现变量数值交换及判断数组是否含有某个元素的方法

    Python实现变量数值交换及判断数组是否含有某个元素的方法

    这篇文章主要介绍了Python实现变量数值交换及判断数组是否含有某个元素的方法,涉及Python字符串与数组的相关赋值、判断操作技巧,需要的朋友可以参考下
    2017-09-09

最新评论