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

yipeiwu_com5年前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中使用logging模块代替print(logging简明指南)

替换print?print怎么了? print 可能是所有学习Python语言的人第一个接触的东西。它最主要的功能就是往控制台 打印一段信息,像这样: 复制代码 代码如下: print...

python f-string式格式化听语音流程讲解

python f-string式格式化听语音流程讲解

f-string 格式化的字符串,是字符串格式化的一种,而且是最新的一种。这里收集的是它的一些基本用法。 没有限定宽度的写法:f"xxxx{ 替换字段 }xxx";  可以有多...

python基于multiprocessing的多进程创建方法

本文实例讲述了python基于multiprocessing的多进程创建方法。分享给大家供大家参考。具体如下: import multiprocessing import time...

Python利用神经网络解决非线性回归问题实例详解

Python利用神经网络解决非线性回归问题实例详解

本文实例讲述了Python利用神经网络解决非线性回归问题。分享给大家供大家参考,具体如下: 问题描述 现在我们通常使用神经网络进行分类,但是有时我们也会进行回归分析。 如本文的问题: 我...

使用TensorFlow-Slim进行图像分类的实现

参考 https://github.com/tensorflow/models/tree/master/slim 使用TensorFlow-Slim进行图像分类 准备 安装Tensor...