Scrapy框架的学习(11.scrapy框架中的下载中间件的使用(DownloaderMiddlewares))
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))相关推荐
- Scrapy框架的学习(9.Scrapy中的CrawlSpider类的作用以及使用,实现优化的翻页爬虫)
1.CrawlSpider类通过一些规则(rules),使对于链接(网页)的爬取更具有通用性, 换句话说,CrawlSpider爬虫为通用性的爬虫, 而Spider爬虫更像是为一些特殊网站制定的爬虫. ...
- Scrapy框架的学习(2.scrapy入门,简单爬取页面,并使用管道(pipelines)保存数据)
上个博客写了: Scrapy的概念以及Scrapy的详细工作流程 https://blog.csdn.net/wei18791957243/article/details/86154068 1.sc ...
- Scrapy框架的学习(4.scrapy中的logging模块记录日志文件以及普通的项目中使用)
logging模块使用 为了让我们自己希望输出到终端的内容能容易看一些: 我们可以在setting中设置log级别 在setting中添加一行(全部大写):LOG_LEVEL = "WARN ...
- Scrapy框架的学习(12. scrapy中的模拟登陆,发送post请求模拟登陆)
1.在有的网站的的登录的界面上,有用户名以及输入密码的输入框 然后输入账号和密码进去,点击登录,后台就会把得到的数据发送过去,验证之后然后就登录成功了,就会跳转到 响应的登录之后的网站 2. 我们可以 ...
- Scrapy框架的学习(10.Scrapy中的模拟登陆(使用cookie模拟登陆))
1. 为什么需要模拟登陆? 获取cookie,能够爬取登陆后的页面的数据 2.使用cookie模拟登陆的场景 (1) cookie过期时间很长,常见于一些不规范的网站 (2) 能在cookie过期之前 ...
- Scrapy框架的学习(8.scrapy中settings.py里面配置说明以及怎样设置配置或者参数以及怎样使用)
1.settings.py里面的参数说明 每个参数其对应的官方得文档的网址 # -*- coding: utf-8 -*-# Scrapy settings for tencent project # ...
- Scrapy框架的学习(1.scrapy的概念以及scrapy的工作流程)
scrapy的概念 1.为什么要学习Scrapy? 因为会让我们的爬虫更快.更强 2.什么是scrapy? (1) Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需要实现 ...
- scrapy框架_Python学习之Scrapy框架
爬虫界江湖地位No.1 说起Python,不得不说到它的爬虫应用,由于Python的短小精悍,用它来开发爬虫应用是最合适不过了,基于Python抓取网页的库有很多,例如requests,beatifu ...
- ThinkPHP框架 _ 学习11
[各种查询条件设置] $obj = D(); 创建对象 *:这里没有指定具体的参数,所以在访问的时候是可以选择数据表来进行操作的 $obj -> select(); 查询数据 select ...
最新文章
- 市电、三相交流电知识
- ASP组件AspJpeg(加水印)
- Nacos注册服务都注册在public空间下
- 償債基金(Sinking fund)
- C#反序列化 “在分析完成之前就遇到流结尾”
- 黄渤《一出好戏》首日票房 1.5 亿,口碑碾压《爱情公寓》凭的是什么?
- Laravel关联模型中过滤结果为空的结果集(has和with区别)
- 宝刀不老: Cookie (转)
- 机器学习笔记(二):矩阵、环境搭建、NumPy | 凌云时刻
- 【2020牛客寒假基础算法训练营】第三场总结
- Django作为微信小程序后端实践
- [期货系列]期货择时策略-基于Hurst指数的分型策略研究
- 鸽子的迷信行为(pigeon superstition)
- 组织行为学对项目管理的意义(1) .
- 岳父岳母-寄快递的特殊方式
- 又一神作。Alibaba“M8级”架构师总结微服务与事件驱动架构启蒙手册
- c++ 发邮件(含附件)
- windows环境下smtp邮件测试
- Java代码使用最小二乘法实现线性回归预测
- Visual Studio(VS) Code详解
热门文章
- 空间计量模型_Stata空间面板数据模型专题直播丨Stata空间计量3月远程直播
- mysql运行报错64bit_关于MySQL5.6.25在Win7 64bit下重装后无法启动的解决方法
- Spring Boot之注册servlet三大组件
- SpringMVC-获得Restful风格的参数
- spring-xml实现aop-通知的种类
- 前端如何让倒计时更准确
- K Balanced Teams
- android地图路径绘制,android:利用svg的path路径+canvas 开发自定义地图控件
- java中上传附件怎么该名称_将附件保存到Outlook中的文件夹并重命名
- 用tensorflow实现yolov3