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挑选文件夹里宽大于300图片的方法
Mar 05 Python
Python itertools模块详解
May 09 Python
python dataframe 输出结果整行显示的方法
Jun 14 Python
Python爬虫PyQuery库基本用法入门教程
Aug 04 Python
Python实现登陆文件验证方法
Oct 06 Python
Pycharm+Scrapy安装并且初始化项目的方法
Jan 15 Python
Python实现的列表排序、反转操作示例
Mar 13 Python
Python3.5内置模块之random模块用法实例分析
Apr 26 Python
python程序快速缩进多行代码方法总结
Jun 23 Python
Django 路由控制的实现
Jul 17 Python
Python 为什么推荐蛇形命名法原因浅析
Jun 18 Python
总结Python常用的魔法方法
May 25 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学习记录之数组函数
2018/06/01 PHP
php连接mysql之mysql_connect()与mysqli_connect()的区别
2020/07/19 PHP
javascript 中对象的继承〔转贴〕
2007/01/22 Javascript
简略的前端架构心得&&基于editor为例子的编码小技巧
2010/11/25 Javascript
根据一段代码浅谈Javascript闭包
2010/12/14 Javascript
JQuery扩展插件Validate 5添加自定义验证方法
2011/09/05 Javascript
javascript权威指南 学习笔记之javascript数据类型
2011/09/24 Javascript
Nodejs中自定义事件实例
2014/06/20 NodeJs
JavaScript中对象property的读取和写入方法介绍
2014/12/30 Javascript
jQuery实现文本框邮箱输入自动补全效果
2015/11/17 Javascript
javascript中利用柯里化函数实现bind方法【推荐】
2016/04/29 Javascript
纯前端JavaScript实现Excel IO案例分享
2016/08/26 Javascript
工作中常用的js、jquery自定义扩展函数代码片段汇总
2016/12/22 Javascript
vue实现动态数据绑定
2017/04/28 Javascript
理解javascript async的用法
2017/08/22 Javascript
浅析为什么a="abc" 不等于 a=new String("abc")
2017/10/25 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
2018/09/28 Javascript
vue中将html字符串转换成html后遇到的问题小结
2018/12/10 Javascript
vue实现todolist功能、todolist组件拆分及todolist的删除功能
2019/04/11 Javascript
原生JavaScript实现刮刮乐
2020/09/29 Javascript
浅谈对yield的初步理解
2017/05/29 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
2019/07/23 Python
python数据类型之间怎么转换技巧分享
2019/08/20 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
2019/09/10 Python
如何清空python的变量
2020/07/05 Python
python利用后缀表达式实现计算器功能
2021/02/22 Python
西班牙最好的在线购买葡萄酒的商店:Vinoseleccion
2019/10/30 全球购物
业务员薪酬管理制度
2014/01/15 职场文书
乡镇庆八一活动方案
2014/02/02 职场文书
三关爱志愿服务活动方案
2014/08/17 职场文书
2014年财务部工作总结
2014/11/11 职场文书
亲属关系公证书样本
2015/01/23 职场文书
python爬取豆瓣电影TOP250数据
2021/05/23 Python
springboot拦截器无法注入redisTemplate的解决方法
2021/06/27 Java/Android
python 安全地删除列表元素的方法
2022/03/16 Python