【Python_Scrapy学习笔记(九)】基于Scrapy框架的下载器中间件创建User-Agent池

基于Scrapy框架的下载器中间件创建User-Agent池

前言

本文中介绍 如何基于 Scrapy 框架的下载器中间件创建 User-Agen t池;Scrapy 框架中有2种中间件,爬虫中间件(Spider Middleware)和下载中间件(Downloader Middleware,其中较为常用的是下载器中间件,下载器中间件是一个挂钩 Scrapy 的请求与响应处理的框架,是一个轻量级的系统,用于全局更改Scrapy的请求和响应。

正文

1、添加中间件的流程

  1. 在 middlewares.py 中新建 User-Agent 中间件类
  2. 在 settings.py 中添加此下载器中间件,设置优先级并开启

2、创建User-Agent池

使用 fake_useragent 模块

from fake_useragent import UserAgent
agent = UserAgent().random  # 生成随机的"User-Agent"

3、基于Scrapy框架的下载器中间件创建User-Agent池的具体操作

  1. 在 middlewares.py 中新建 User-Agent 中间件类
# 中间件1:包装随机的Uesr-Agent
class BaidumiddleRandomDownloaderMiddleware:
    def process_request(self, request, spider):
        """
        function:  
              in:  
             out:  
          return:  int >0 ok, <0 some wrong 
          others:  
        """
        agent = UserAgent().random  # 生成随机的"User-Agent"
        # Request()方法中 所有的参数都可以作为 请求对象request的属性
        # Request参数都有什么?urlm,meta,callback,headers,cookies
        request.headers["User-Agent"] = agent
        print(agent) # 打印 "User-Agent"
        # 之后要开启中间件
  1. 在 settings.py 中添加此下载器中间件,设置优先级并开启
# Enable or disable downloader middlewares
# See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html
# 开启中间件
DOWNLOADER_MIDDLEWARES = {
    "BaiduMiddle.middlewares.BaidumiddleDownloaderMiddleware": 543,
    "BaiduMiddle.middlewares.BaidumiddleRandomDownloaderMiddleware": 200,
}
  1. 执行效果
    在这里插入图片描述
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

禾戊之昂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值