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 31 Python
浅谈python可视化包Bokeh
Feb 07 Python
python3爬取淘宝信息代码分析
Feb 10 Python
利用Python yagmail三行代码实现发送邮件
May 11 Python
python cs架构实现简单文件传输
Mar 20 Python
Python利用递归实现文件的复制方法
Oct 27 Python
django中瀑布流写法实例代码
Oct 14 Python
python创建ArcGIS shape文件的实现
Dec 06 Python
Pytorch之卷积层的使用详解
Dec 31 Python
Python中使用filter过滤列表的一个小技巧分享
May 02 Python
python opencv pytesseract 验证码识别的实现
Aug 28 Python
python 基于PYMYSQL使用MYSQL数据库
Dec 24 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新建文件自动编号的思路与实现
2011/06/27 PHP
php获取用户浏览器版本的方法
2015/01/03 PHP
php实现登录tplink WR882N获取IP和重启的方法
2016/07/20 PHP
CMSPRESS 10行代码搞定 PHP无限级分类2
2018/03/30 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
2018/04/20 PHP
php项目中类的自动加载实例讲解
2019/09/12 PHP
初探jquery——表单应用范例
2007/02/20 Javascript
js 编码转换 gb2312 和 utf8 互转的2种方法
2013/08/07 Javascript
Extjs根据条件设置表格某行背景色示例
2014/07/23 Javascript
使用jquery提交form表单并自定义action的方法
2016/05/25 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
2016/05/28 Javascript
js动态获取子复选项并设计全选及提交的实现方法
2016/06/24 Javascript
Javascript自定义事件详解
2017/01/13 Javascript
原生js封装自定义滚动条
2017/03/24 Javascript
详解angular 中的自定义指令之详解API
2017/06/20 Javascript
Three.js中网格对象MESH的属性与方法详解
2017/09/27 Javascript
Vue2.0仿饿了么webapp单页面应用详细步骤
2018/07/08 Javascript
浅析vue-router原理
2018/10/19 Javascript
webpack中如何使用雪碧图的示例代码
2018/11/11 Javascript
[56:00]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第二场
2018/04/10 DOTA
Python常用正则表达式符号浅析
2014/08/13 Python
Python with用法实例
2015/04/14 Python
Python自动化测试ConfigParser模块读写配置文件
2016/08/15 Python
Python基础教程之异常详解
2019/01/10 Python
python实现信号时域统计特征提取代码
2020/02/26 Python
Python3读写ini配置文件的示例
2020/11/06 Python
CSS3 三维变形实现立体方块特效源码
2016/12/15 HTML / CSS
新西兰演唱会和体育门票网站:Ticketmaster新西兰
2017/10/07 全球购物
西雅图的买手店:Totokaelo
2019/10/19 全球购物
BannerBuzz加拿大:在线定制横幅印刷、广告和标志
2020/03/10 全球购物
C有"按引用传递"吗
2016/09/06 面试题
汽车转让协议书
2015/01/29 职场文书
公司2015年终工作总结
2015/05/26 职场文书
民主生活会意见
2015/06/05 职场文书
新教师2015年度工作总结
2015/07/22 职场文书
python读取pdf格式文档的实现代码
2021/04/01 Python