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

yipeiwu_com6年前Python基础

本文实例讲述了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批量替换文件内容,支持嵌套文件夹 import os path="./" for root,dirs,files in os.walk(path): for name...

Python2.X/Python3.X中urllib库区别讲解

本文介绍urllib库在不同版本的Python中的变动,并以Python3.X讲解urllib库的相关用法。 urllib库对照速查表 Python2.X...

Python网络编程之TCP与UDP协议套接字用法示例

本文实例讲述了Python网络编程之TCP与UDP协议套接字用法。分享给大家供大家参考,具体如下: TCP协议 服务器端: #!/usr/bin/env python from so...

python 实现在txt指定行追加文本的方法

如下所示: fp = file('data.txt') lines = [] for line in fp: lines.append(line) fp.close() l...

Python遍历zip文件输出名称时出现乱码问题的解决方法

本文实例讲述了Python遍历zip文件输出名称时出现乱码问题的解决方法。分享给大家供大家参考。具体如下: windows中使用python2.7遍历zip文件之后输出文件名等信息,co...