【Python_Scrapy学习笔记(十一)】基于Scrapy框架的下载器中间件添加Cookie参数

news/2024/7/19 11:12:40 标签: python, scrapy, 中间件, 网络爬虫, 爬虫

基于Scrapy框架的下载器中间件添加Cookie参数

前言

本文中介绍 如何基于 Scrapy 框架的下载器中间件添加 Cookie 参数。

正文

1、添加中间件的流程

  1. 在 middlewares.py 中新建 Cookie参数 中间件
  2. 在 settings.py 中添加此下载器中间件,设置优先级并开启

2、基于Scrapy框架的下载器中间件添加Cookie参数的流程

  1. 在 middlewares.py 中新建 Cookie参数 中间件

    python"># 中间件3:Cookie
    class BaiduCookieDownloaderMiddleware(object):
        def process_request(self, request, spider):
            # 1、先抓包得到cookie
            cookie_dict = self.get_cookie()
            request.cookies = cookie_dict
            print(cookie_dict)
    
        def get_cookie(self):
            cookie_string = 'xxx:xxx'
            cookie_dict = {}
            for kv in cookie_string.split(";"):
                k = kv.split('=')[0]
                v = kv.split('=')[1]
                cookie_dict[k] = v
            return cookie_dict
    

    注意1:Cookies 参数需要通过 F12 抓包得到;
    注意2:要写一个函数,将 Cookies 字符串格式 处理为字典格式。

    python">    def get_cookie(self):
            cookie_string = ''
            cookie_dict = {}
            for kv in cookie_string.split(";"):
                k = kv.split('=')[0]
                v = kv.split('=')[1]
                cookie_dict[k] = v
            return cookie_dict
    
  2. 在 settings.py 中添加此下载器中间件,设置优先级并开启

    python"># Enable or disable downloader middlewares
    # See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html
    # 开启中间件
    DOWNLOADER_MIDDLEWARES = {
        "BaiduMiddle.middlewares.BaidumiddleDownloaderMiddleware": 543,
        "BaiduMiddle.middlewares.BaiduCookieDownloaderMiddleware": 400
    }
    
  3. 运行效果
    在这里插入图片描述


http://www.niftyadmin.cn/n/247001.html

相关文章

时间序列分析卫星重力梯度观测值

阚昊宇 1 时间序列图 导入数据,共2880历元(86370 s)数据,取前2400历元(72000 s)数据作为训练集,后480历元作为测试集。将训练集绘制时间序列图如下图 1红色线所示,可见明显的自相关…

飞行机器人专栏(十二)-- 提高机器人系统可靠性的关键要素与实践

本文将介绍如何在机器人系统的开发过程中融入关键要素,从而提高系统的可靠性。我们将从需求分析、设计阶段、开发与调试、验证与优化、迭代与升级等方面进行详细讨论,并提供示例代码以帮助您更好地理解相关概念。 目录 一、需求分析与规划 二、…

C语言——隐式转换

目录 前言 隐式转换 1.整型提升 2.算数转换 前言 这里小编给大家简单的补充一下,一些有关C语言的知识点 隐式转换 由于转换形式的不同类型转换这里一共分为整型提升和运算转换两种形式 1.整型提升 在了解整型提升之前,这里我们需要先了解一下截断…

数据湖 Hudi 核心概念

文章目录 什么是 Hudi ?Hudi 是如何对数据进行管理的?Hudi 表结构Hudi 核心概念 什么是 Hudi ? Hudi 是一个用于处理大数据湖的开源框架。 大数据湖是指一个大规模的、中心化的数据存储库,其中包含各种类型的数据,如结构化数据、半结构化…

蓝库云|究竟什么是ERP?它对企业有什么重要性作用呢

一、什么是ERP ERP全称为Enterprise Resource Planning,即企业资源计划,是一种运用信息技术手段来集成管理企业内部所有资源,协调各项业务、机构、流程和人员,实现高效、协同、合规经营的商业管理软件。ERP系统包括销售、采购、物…

ModStartCMS v6.2.0 VIP权益配置功能,界面UI优化升级

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议,免费且不限制商业使用。 功能特性 丰富的模块市…

Servlet 和 Servlet API 简述

目录 1、什么是 Servlet? 2、Servlet API 有哪些内容? 3、Servlet 与 Tomcat 的区别和联系 4、常用的Web服务器有哪些? 5、拓展:Undertow 和Tomcat 的区别 1、什么是 Servlet? Servlet 是 Java Web 应用程序中的一…

嵌入式Linux(5):物理地址到虚拟地址映射

文章目录 理论知识1、使能了MMU以后有什么好处呢?2、MMU非常复杂,那么我们如何完成物理地址到虚拟地址的转换呢?3、如何查看哪些物理地址被映射过了呢?实例(RK3568) 理论知识 在Linux上面如果想要操作硬件,需要先把物…