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 相关文章推荐
Python3.4编程实现简单抓取爬虫功能示例
Sep 14 Python
python 简单备份文件脚本v1.0的实例
Nov 06 Python
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析
May 08 Python
对Python中的条件判断、循环以及循环的终止方法详解
Feb 08 Python
基于腾讯云服务器部署微信小程序后台服务(Python+Django)
May 08 Python
Python flask框架post接口调用示例
Jul 03 Python
Python搭建代理IP池实现接口设置与整体调度
Oct 27 Python
python实现视频读取和转化图片
Dec 10 Python
python连接mongodb集群方法详解
Feb 13 Python
Python字符串函数strip()原理及用法详解
Jul 23 Python
Python高阶函数与装饰器函数的深入讲解
Nov 10 Python
MoviePy简介及Python视频剪辑自动化
Dec 18 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根据传入参数合并多个JS和CSS文件的简单实现
2014/06/13 PHP
PHP创建单例后台进程的方法示例
2017/05/23 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
2017/10/10 PHP
js各种验证文本框输入格式(正则表达式)
2010/10/22 Javascript
原生javascript实现隔行换色
2015/01/04 Javascript
javascript实现图像循环明暗变化的方法
2015/02/25 Javascript
javascript实现俄罗斯方块游戏的思路和方法
2015/04/27 Javascript
详解JavaScript语言的基本语法要求
2015/11/20 Javascript
js闭包用法实例详解
2016/12/13 Javascript
微信小程序 picker-view 组件详解及简单实例
2017/01/10 Javascript
前端编码规范(3)JavaScript 开发规范
2017/01/21 Javascript
微信小程序 定位到当前城市实现实例代码
2017/02/23 Javascript
AngularJS select设置默认值的实现方法
2017/08/25 Javascript
关于HTTP传输中gzip压缩的秘密探索分析
2018/01/12 Javascript
Bootstrap 中data-[*] 属性的整理
2018/03/13 Javascript
Angular6 发送手机验证码按钮倒计时效果实现方法
2019/01/08 Javascript
用Django写天气预报查询网站
2018/10/21 Python
python实现狄克斯特拉算法
2019/01/17 Python
详解Matplotlib绘图之属性设置
2019/08/23 Python
Python timer定时器两种常用方法解析
2020/01/20 Python
Python实现实时数据采集新型冠状病毒数据实例
2020/02/04 Python
python对XML文件的操作实现代码
2020/03/27 Python
windows下的pycharm安装及其设置中文菜单
2020/04/23 Python
详解python UDP 编程
2020/08/24 Python
python基于win32api实现键盘输入
2020/12/09 Python
纯CSS3实现的8种Loading动画效果
2014/07/05 HTML / CSS
Mountain Warehouse澳大利亚官网:欧洲家庭户外品牌倡导者
2016/11/20 全球购物
德国高性价比网上药店:medpex
2017/07/09 全球购物
Daisy London官网:英国最大的首饰集团IBB旗下
2019/02/28 全球购物
2014年应届大学生毕业自我鉴定
2014/01/31 职场文书
陈欧广告词
2014/03/14 职场文书
安全生产管理责任书
2014/04/16 职场文书
公司职员入党自传书
2015/06/26 职场文书
2016新春团拜会致辞
2015/08/01 职场文书
一个成功的互联网创业项目,必须满足这些要求
2019/08/23 职场文书
解决Mysql的left join无效及使用的注意事项说明
2021/07/01 MySQL