zg手册 之 scrapy 开发(3)-- 下载中间件
2014-03-30 02:01
239 查看
下载中间件功能
这是处于引擎和下载器之间的一层组件,可以有多个下载中间件被加载运行, 在引擎传递请求给下载器的过程中,下载中间件可以对请求进行处理 (例如增加http header信息等), 在下载器完成http请求,传递响应给引擎的过程中, 下载中间件可以对响应进行处理(例如进行gzip的解压等)scrapy框架自带的下载中间件
CookiesMiddleware 跟踪处理 cookieDownloadTimeoutMiddleware 设置请求超时时间
其他下载中间件
scrapy 下载中间件的开启情况
查看 /usr/local/lib/python2.7/dist-packages/scrapy/settings/default_settings.py 默认配置文件,变量 DOWNLOADER_MIDDLEWARES_BASE 的定义有些中间件有开关参数,例如 COOKIES_ENABLED 控制 CookiesMiddleware 开启或关闭
开发下载中间件,丢弃响应数据长度等于100的数据
创建 middlewares 目录(与 settings.py 文件在同一目录下)在目录下创建 mymiddlewares.py 文件,创建类 CustomMiddlewares,下载中间件的类继承自 scrapy.contrib.downloadermiddleware.DownloaderMiddleware
DownloaderMiddleware 主要提供如下的方法
process_request 在请求传递给下载器前可以处理请求对象
process_response 在响应传递给引擎前处理响应数据
process_exception 处理异步调用时发生的异常情况
在 mymiddlewares.py 文件中添加下面代码
from scrapy.exceptions import IgnoreRequest from scrapy.contrib.downloadermiddleware import DownloaderMiddleware class CustomMiddlewares(DownloaderMiddleware): def process_response(self, request, response, spider): if len(response.body) == 100: return IgnoreRequest("body length == 100") else: return response
在配置文件 settings.py 中配置下载中间件
DOWNLOADER_MIDDLEWARES = { "douban.middlerwares.mymiddlewares.CustomMiddlewares": 543, }
运行 scrapy crawl doubanBook
原文链接: http://www.hopez.org/blog/9/1396102884
相关文章推荐
- zg手册 之 scrapy 开发(3)-- 下载中间件
- zg手册 之 scrapy 开发(7)-- 爬虫调试
- zg手册 之 scrapy 开发(6)-- extensions(扩展)开发
- zg手册 之 scrapy 开发(5)-- downloader(下载器)开发
- zg手册 之 scrapy 开发(4)-- javascript 动态页面的抓取
- Navi.Soft31.WinCE框架.开发手册(含下载地址)
- 开源重磅!《阿里巴巴 Android 开发手册》抢鲜下载!
- zg手册 之 Mysql 开发(1)-- 中文全文检索插件开发
- 初试Scrapy(五)—通过下载保存美女图片来学习下Spider中间件(Spider Middlewares)
- 100+个程序员开发必备参考手册(在线及下载) [复制链接]
- Web前端开发必备手册下载
- Web前端开发一些必备手册下载(啥都有,很全)
- 【转载】完全手册 Flex 3.0 RIA开发详解(光盘内容)(书下载以及书的源代码下载)
- 阿里官方Java代码规范标准《阿里巴巴Java开发手册 终极版 v1.3.0》下载
- 咏南中间件和开发框架介绍文档下载
- 电子书下载:Delphi XE 5 移动开发入门手册(完整版)
- 免费的快速开发平台(ES2007)下载试用|SOA中间件|BPM工作流|J2EE架构
- Web前端开发必备手册下载
- 免费下载获取Odoo中文开发 指南 手册