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程序设计有所帮助。

相关文章

Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)

我们可以利用urllib来抓取远程的数据进行保存哦,以下是python3 抓取网页资源的多种方法,有需要的可以参考借鉴。 1、最简单 import urllib.request re...

python+pyqt5编写md5生成器

python+pyqt5编写md5生成器

本文实例为大家分享了python+pyqt5编写md5生成器的具体代码,供大家参考,具体内容如下 学了一下pyqt5,写一个小程序来实践一下。 下图是程序界面: 下面是代码:...

Django命名URL和反向解析URL实现解析

Django命名URL和反向解析URL实现解析

命名 URL: test.html: <!DOCTYPE html> <html lang="en"> <head> <meta cha...

Python列表(list)所有元素的同一操作解析

Python列表(list)所有元素的同一操作解析

针对很普遍的每个元素的操作会遍历每个元素进行操作。 这里给出了几种写法,列表每个元素自增等数学操作同理; 示例:整形列表ilist加1个数、元素类型转字符串: ilist = [1,...

python一键去抖音视频水印工具

python一键去抖音视频水印工具

无水印视频下载 方法一: 无水印视频下载很简单,有一个通用的方法,就是使用去水印平台即可。 我使用的去水印平台是:http://douyin.iiilab.com/ 在输入框中输入视频链...