1.Downloader Middlewares (下载中间键):引擎会先把Requets对象交给下载中间键再然后交给Downloader

2.使用方法:

(1) 编写一个Downloader Middlewares 和我们编写一个pipeline一样,定义一个类,然后在settings中开启

(2) Downloader Middlewares默认的方法:

 process_request(self,request,spider):  当每个request通过下载中间件时,该方法被调用。(处理请求)

 process_response(self,request,response,spider):当下载器完成http请求,传递响应给引擎的时候调用(处理响应)

3. 可以在process_request()方法里面添加自定义的UA,给request的headers赋值即可

而且可以添加代理:  需要在reques的meta信息中添加proxy字段

   request.meta["proxy"] = "协议代理IP和端口号"

  4.middlewares.py里面进行编辑

'''导入随机获取浏览器的模块'''
import user_agent    class RandomUserAgentMiddleware:def process_request(self, request, spider):、'''随机获取浏览器的标识'''ua = user_agent.generate_user_agent()'''设置浏览器的标识'''request.headers["User-Agent"] = uaclass CheckUserAgent:def process_response(self,request,response, spider):print(dir(response))print(request.headers['User-Agent'])return response

然后在settings里面进行开启:

DOWNLOADER_MIDDLEWARES = {'Cookes_login.middlewares.RandomUserAgentMiddleware': 543,'Cookes_login.middlewares.CheckUserAgent': 544,
}

5. 在 middlewares里还有  process_excetion(request,exception,spider)

这个方法是专门帮助我们处理异常,类似代理ip不可用等的异常,我们可以对这个异常进行处理

Scrapy框架的学习(11.scrapy框架中的下载中间件的使用(DownloaderMiddlewares))相关推荐

  1. Scrapy框架的学习(9.Scrapy中的CrawlSpider类的作用以及使用,实现优化的翻页爬虫)

    1.CrawlSpider类通过一些规则(rules),使对于链接(网页)的爬取更具有通用性, 换句话说,CrawlSpider爬虫为通用性的爬虫, 而Spider爬虫更像是为一些特殊网站制定的爬虫. ...

  2. Scrapy框架的学习(2.scrapy入门,简单爬取页面,并使用管道(pipelines)保存数据)

    上个博客写了:  Scrapy的概念以及Scrapy的详细工作流程 https://blog.csdn.net/wei18791957243/article/details/86154068 1.sc ...

  3. Scrapy框架的学习(4.scrapy中的logging模块记录日志文件以及普通的项目中使用)

    logging模块使用 为了让我们自己希望输出到终端的内容能容易看一些: 我们可以在setting中设置log级别 在setting中添加一行(全部大写):LOG_LEVEL = "WARN ...

  4. Scrapy框架的学习(12. scrapy中的模拟登陆,发送post请求模拟登陆)

    1.在有的网站的的登录的界面上,有用户名以及输入密码的输入框 然后输入账号和密码进去,点击登录,后台就会把得到的数据发送过去,验证之后然后就登录成功了,就会跳转到 响应的登录之后的网站 2. 我们可以 ...

  5. Scrapy框架的学习(10.Scrapy中的模拟登陆(使用cookie模拟登陆))

    1. 为什么需要模拟登陆? 获取cookie,能够爬取登陆后的页面的数据 2.使用cookie模拟登陆的场景 (1) cookie过期时间很长,常见于一些不规范的网站 (2) 能在cookie过期之前 ...

  6. Scrapy框架的学习(8.scrapy中settings.py里面配置说明以及怎样设置配置或者参数以及怎样使用)

    1.settings.py里面的参数说明 每个参数其对应的官方得文档的网址 # -*- coding: utf-8 -*-# Scrapy settings for tencent project # ...

  7. Scrapy框架的学习(1.scrapy的概念以及scrapy的工作流程)

    scrapy的概念 1.为什么要学习Scrapy?  因为会让我们的爬虫更快.更强 2.什么是scrapy? (1) Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需要实现 ...

  8. scrapy框架_Python学习之Scrapy框架

    爬虫界江湖地位No.1 说起Python,不得不说到它的爬虫应用,由于Python的短小精悍,用它来开发爬虫应用是最合适不过了,基于Python抓取网页的库有很多,例如requests,beatifu ...

  9. ThinkPHP框架 _ 学习11

    [各种查询条件设置] $obj = D();  创建对象  *:这里没有指定具体的参数,所以在访问的时候是可以选择数据表来进行操作的 $obj -> select();  查询数据 select ...

最新文章

  1. 市电、三相交流电知识
  2. ASP组件AspJpeg(加水印)
  3. Nacos注册服务都注册在public空间下
  4. 償債基金(Sinking fund)
  5. C#反序列化 “在分析完成之前就遇到流结尾”
  6. 黄渤《一出好戏》首日票房 1.5 亿,口碑碾压《爱情公寓》凭的是什么?
  7. Laravel关联模型中过滤结果为空的结果集(has和with区别)
  8. 宝刀不老: Cookie (转)
  9. 机器学习笔记(二):矩阵、环境搭建、NumPy | 凌云时刻
  10. 【2020牛客寒假基础算法训练营】第三场总结
  11. Django作为微信小程序后端实践
  12. [期货系列]期货择时策略-基于Hurst指数的分型策略研究
  13. 鸽子的迷信行为(pigeon superstition)
  14. 组织行为学对项目管理的意义(1) .
  15. 岳父岳母-寄快递的特殊方式
  16. 又一神作。Alibaba“M8级”架构师总结微服务与事件驱动架构启蒙手册
  17. c++ 发邮件(含附件)
  18. windows环境下smtp邮件测试
  19. Java代码使用最小二乘法实现线性回归预测
  20. Visual Studio(VS) Code详解

热门文章

  1. 空间计量模型_Stata空间面板数据模型专题直播丨Stata空间计量3月远程直播
  2. mysql运行报错64bit_关于MySQL5.6.25在Win7 64bit下重装后无法启动的解决方法
  3. Spring Boot之注册servlet三大组件
  4. SpringMVC-获得Restful风格的参数
  5. spring-xml实现aop-通知的种类
  6. 前端如何让倒计时更准确
  7. K Balanced Teams
  8. android地图路径绘制,android:利用svg的path路径+canvas 开发自定义地图控件
  9. java中上传附件怎么该名称_将附件保存到Outlook中的文件夹并重命名
  10. 用tensorflow实现yolov3