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 相关文章推荐
python中关于日期时间处理的问答集锦
Mar 08 Python
Python中使用ConfigParser解析ini配置文件实例
Aug 30 Python
Python修改MP3文件的方法
Jun 15 Python
python如何为创建大量实例节省内存
Mar 20 Python
详解Python 协程的详细用法使用和例子
Jun 15 Python
pygame游戏之旅 添加游戏介绍
Nov 20 Python
详解Python3之数据指纹MD5校验与对比
Jun 11 Python
Python 实现输入任意多个数,并计算其平均值的例子
Jul 16 Python
Python实现Singleton模式的方式详解
Aug 08 Python
解决python彩色螺旋线绘制引发的问题
Nov 23 Python
使用PyCharm安装pytest及requests的问题
Jul 31 Python
Python3的进程和线程你了解吗
Mar 16 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
PHP超级全局变量数组小结
2012/10/04 PHP
PHP使用DES进行加密与解密的方法详解
2013/06/06 PHP
单点登录 Ucenter示例分析
2013/10/29 PHP
php输入数据统一类实例
2015/02/23 PHP
php实现屏蔽掉黑帽SEO的搜索关键字
2015/04/15 PHP
PHP开发Apache服务器配置
2015/07/15 PHP
php基于jquery的ajax技术传递json数据简单实例
2016/04/15 PHP
php is_writable判断文件是否可写实例代码
2016/10/13 PHP
微信 getAccessToken方法详解及实例
2016/11/23 PHP
解放web程序员的输入验证
2006/10/06 Javascript
推荐11款jQuery开发的复选框和单选框美化插件
2011/08/02 Javascript
js保留两位小数使用toFixed实现
2013/07/29 Javascript
jQuery对val和atrr("value")赋值的区别介绍
2014/09/26 Javascript
js根据鼠标移动速度背景图片自动旋转的方法
2015/02/28 Javascript
jQuery插件开发精品教程(让你的jQuery更上一个台阶)
2015/11/07 Javascript
全面了解构造函数继承关键apply call
2016/07/26 Javascript
Google 地图事件实例讲解
2016/08/06 Javascript
使用Vue开发自己的Chrome扩展程序过程详解
2019/06/21 Javascript
微信小程序 checkbox使用实例解析
2019/09/09 Javascript
nodeJs的安装与npm全局环境变量的配置详解
2020/01/06 NodeJs
vue中实现拖动调整左右两侧div的宽度的示例代码
2020/07/22 Javascript
vue实现可移动的悬浮按钮
2021/03/04 Vue.js
Python的Django框架中设置日期和字段可选的方法
2015/07/17 Python
python开发之IDEL(Python GUI)的使用方法图文详解
2015/11/12 Python
利用python批量修改word文件名的方法示例
2017/10/17 Python
python爬虫_微信公众号推送信息爬取的实例
2017/10/23 Python
python wxpython 实现界面跳转功能
2019/12/17 Python
python中如何进行连乘计算
2020/05/28 Python
意大利网上书店:LaFeltrinelli
2020/06/12 全球购物
数据员岗位职责
2013/11/19 职场文书
中秋节礼品促销方案
2014/02/02 职场文书
酒店辞职书怎么写
2015/02/26 职场文书
帝企鹅日记观后感
2015/06/10 职场文书
详解Laravel服务容器的优势
2021/05/29 PHP
mysql left join快速转inner join的过程
2021/06/30 MySQL
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/07 其他游戏