Python使用scrapy采集数据过程中放回下载过大页面的方法


Posted in Python onApril 08, 2015

本文实例讲述了Python使用scrapy采集数据过程中放回下载过大页面的方法。分享给大家供大家参考。具体分析如下:

添加以下代码到settings.py,myproject为你的项目名称

DOWNLOADER_HTTPCLIENTFACTORY = 'myproject.downloader.LimitSizeHTTPClientFactory'

自定义限制下载过大页面的模块

MAX_RESPONSE_SIZE = 1048576 # 1Mb

from scrapy.core.downloader.webclient import ScrapyHTTPClientFactory, ScrapyHTTPPageGetter

class LimitSizePageGetter(ScrapyHTTPPageGetter):

    def handleHeader(self, key, value):

        ScrapyHTTPPageGetter.handleHeader(self, key, value)

        if key.lower() == 'content-length' and int(value) > MAX_RESPONSE_SIZE:

            self.connectionLost('oversized')

class LimitSizeHTTPClientFactory(ScrapyHTTPClientFactory):

     protocol = LimitSizePageGetter

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
PyMongo安装使用笔记
Apr 27 Python
详解Django框架中的视图级缓存
Jul 23 Python
Python 实现一个颜色色值转换的小工具
Dec 06 Python
Python Flask-web表单使用详解
Nov 18 Python
Python爬虫框架Scrapy实例代码
Mar 04 Python
python如何为被装饰的函数保留元数据
Mar 21 Python
Python 绘图库 Matplotlib 入门教程
Apr 19 Python
python通过zabbix api获取主机
Sep 17 Python
python实现五子棋游戏
Jun 18 Python
python写日志文件操作类与应用示例
Jul 01 Python
Python的赋值、深拷贝与浅拷贝的区别详解
Feb 12 Python
利用Python将图片中扭曲矩形的复原
Sep 07 Python
在Python中使用M2Crypto模块实现AES加密的教程
Apr 08 #Python
Python使用scrapy采集时伪装成HTTP/1.1的方法
Apr 08 #Python
Python打印scrapy蜘蛛抓取树结构的方法
Apr 08 #Python
使用IPython来操作Docker容器的入门指引
Apr 08 #Python
仅用50行Python代码实现一个简单的代理服务器
Apr 08 #Python
用Python实现一个简单的能够发送带附件的邮件程序的教程
Apr 08 #Python
Python 创建子进程模块subprocess详解
Apr 08 #Python
You might like
提取HTML标签
2006/10/09 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
PHP7扩展开发之hello word实现方法详解
2018/01/15 PHP
PHP+MySQL实现模糊查询员工信息功能示例
2018/06/01 PHP
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
2006/06/26 Javascript
基于jquery的可多选的下拉列表框
2012/07/20 Javascript
jfreechart插件将数据展示成饼状图、柱状图和折线图
2015/04/13 Javascript
APP中javascript+css3实现下拉刷新效果
2016/01/27 Javascript
GitHub上一些实用的JavaScript的文件压缩解压缩库推荐
2016/03/13 Javascript
原生js和jquery分别实现横向导航菜单效果
2016/05/13 Javascript
浅谈js的ajax的异步和同步请求的问题
2016/10/07 Javascript
详解javascript事件绑定使用方法
2016/10/20 Javascript
webpack源码之loader机制详解
2018/04/06 Javascript
JS实现调用本地摄像头功能示例
2018/05/18 Javascript
extjs图表绘制之条形图实现方法分析
2020/03/06 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
2020/10/14 Javascript
[42:25]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第三场
2018/04/06 DOTA
python处理中文编码和判断编码示例
2014/02/26 Python
举例讲解Python设计模式编程的代理模式与抽象工厂模式
2016/01/16 Python
关于Python正则表达式 findall函数问题详解
2018/03/22 Python
详解重置Django migration的常见方式
2019/02/15 Python
python实现批量修改服务器密码的方法
2019/08/13 Python
Python生成器实现简单"生产者消费者"模型代码实例
2020/03/27 Python
Python WebSocket长连接心跳与短连接的示例
2020/11/24 Python
python 根据列表批量下载网易云音乐的免费音乐
2020/12/03 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
2021/03/03 Python
龟牌英国商店:Turtle Wax Brand Store UK
2019/07/02 全球购物
乌克兰电子产品和家用电器购物网站:TOUCH
2019/08/09 全球购物
什么是makefile? 如何编写makefile?
2013/01/02 面试题
介绍一下JNDI的基本概念
2013/07/26 面试题
法人代表授权委托书
2014/04/08 职场文书
高中生评语大全
2014/04/25 职场文书
安全承诺书
2015/01/19 职场文书
2015年调度员工作总结
2015/04/30 职场文书
Python 如何解决稀疏矩阵运算
2021/05/26 Python
如何在Python项目中引入日志
2021/05/31 Python