`
酷的飞上天空
  • 浏览: 521846 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

使用Scrapy时出现虽然队列里有很多Request但是却不下载,造成假死状态

 
阅读更多

现象就是:

程序运行一段时间,可能是几十分钟或者几个小时,然后后台日志里面就不出现下载页面的信息,一直显示上一分钟抓取了0个网页的信息。

刚开始已经猜到是某些下载线程没有正常执行回调方法引起程序一直以为线程还未下载完成,但是水平有限研究源码未果。

经过不停的google终于发现一个有价值的信息,是给twisted提出的一个bugfix

连接地址如下http://twistedmatrix.com/trac/attachment/ticket/5773/patch1.diff#L739

 

为client加上了超时的限制,一定时间内如果无响应则执行设定的超时回调。

 

我把里面的timeout=0改成了timeout=10

替换后在运行scrapy程序,问题不再出现

 

附件中为替换好的文件,下载后直接去掉文件后缀 .rar即可

分享到:
评论

相关推荐

    scrapy&request_异步数据爬取_scrapy_

    Scrapy和Request是Python中两种常用的网络爬虫框架,它们都支持异步数据爬取,但各有特点。本文将深入探讨这两个工具在异步爬取中的应用及其优势。 首先,让我们了解一下什么是异步数据爬取。传统的同步爬虫在请求...

    scrapy爬取大文件方法

    6. **异步处理**:Scrapy默认使用Twisted库进行异步操作,这有助于处理大量并发请求,提高效率。对于大文件,可以考虑利用异步IO进一步优化下载速度。 7. **Item Pipeline的优化**:对于大文件,可能需要在Item ...

    scrapy框架模拟登陆人人网带状态维持

    **Scrapy框架模拟登录人人网并保持状态** 在Python的Web爬虫开发中,Scrapy是一个强大而灵活的框架,常用于数据抓取和网页解析。本教程将深入讲解如何使用Scrapy框架来模拟登录人人网,并实现状态维持,以便在抓取...

    scrapy-redis-master_scrapy-redis_juzi1122_scrapy_

    Scrapy-Redis是一个基于Scrapy的分布式爬虫框架,它扩展了Scrapy的功能,使其能够处理大规模的网络抓取任务。Scrapy是一个流行的Python爬虫框架,而Scrapy-Redis则是将其与Redis数据库结合,利用Redis作为数据队列,...

    Scrapy ImagesPipeline下载图片

    在Scrapy中,ImagesPipeline是一个非常实用的组件,专门用于处理图片的下载和管理,使得爬虫在抓取网页内容时能够方便地获取并保存图片资源。 **Scrapy ImagesPipeline简介** ImagesPipeline是Scrapy内置的图片...

    scrapy下载图片

    虽然Scrapy默认不支持图片下载,但可以通过自定义中间件实现。例如,我们可以创建一个`DownloadImagesMiddleware`,在`process_response()`方法中检查响应是否包含图片,并将其保存到本地: ```python class ...

    使用scrapy爬取全国所有城市的天气信息

    在抓取大量数据时,要注意不要对网站造成过大负担,以免被封IP。 总结,本项目涉及的主要知识点包括:Scrapy框架的使用、HTTP请求与响应、HTML解析、数据结构定义(Item)、数据处理(Item Pipeline)、网络爬虫的...

    scrapy图片异步分类下载

    Scrapy是一个强大的Python爬虫框架,它提供了许多内置的功能组件,包括用于处理图片的ImagePipeline。在本场景中,我们关注的是如何利用Scrapy实现图片的异步分类下载,特别是针对"汽车之家"网站的图片资源。下面...

    scrapy 安装包

    Scrapy是一个强大的Python爬虫框架,它为开发者提供了一套完整的解决方案来构建网络爬虫项目。Scrapy的设计理念是高效、灵活且可扩展,适用于抓取大规模数据并进行处理。在Python开发环境中,安装Scrapy及其依赖包...

    Scrapy0.24.1 中文文档

    Scrapy由多个组件构成,包括Spiders、Item、Item Pipeline、Request/Response、Selectors等。这些组件协同工作,形成了一个完整的数据提取和处理流程。 2. **Spiders**: Spider是Scrapy的核心,负责定义如何从...

    使用scrapy,redis,mongodb实现的一个分布式网络爬虫[整理].pdf

    该爬虫系统使用 Scrapy 框架来抓取网页数据,并使用 Redis 来实现分布式爬虫的任务队列和状态管理。同时,使用 MongoDB 来存储抓取的数据,并使用 GridFS 来存储大文件。 分布式爬虫架构 该爬虫系统的架构主要包括...

    python scrapy

    使用Scrapy时,开发者首先需要配置项目,创建Spider,定义Item和Pipeline,然后启动Scrapy引擎开始爬取。Scrapy的强大之处在于其模块化的结构,允许开发者专注于数据抓取逻辑,而无需关心底层网络通信细节。此外,...

    Python-使用scrapy框架爬中国省市地区数据

    Scrapy是由多个组件构成的,包括Spider(爬虫)、Item(数据模型)、Item Pipeline(数据处理管道)、Downloader Middleware(下载器中间件)和Request/Response(请求和响应)。在创建一个Scrapy项目时,我们通常会...

    用scrapy爬取下载某图片网站的全部图片

    本教程将详细介绍如何使用Scrapy来爬取并下载一个图片网站的所有图片。首先,我们需要理解Scrapy的基本架构,包括项目结构、爬虫定义、中间件、下载器及存储策略。 1. **Scrapy项目创建**: 在开始之前,确保已经...

    用scrapy批量下载电视剧

    在这个场景中,我们将讨论如何使用Scrapy来批量下载电视剧。通过理解Scrapy的基本结构和原理,我们可以构建一个定制化的爬虫来实现这个目标。 首先,我们需要安装Scrapy。在命令行中运行`pip install scrapy`来安装...

    scrapy-0.24文档

    在Scrapy中,请求(Request)对象包含了要下载的URL、回调函数(当请求完成时调用)和其他元数据。响应(Response)对象则包含了下载器返回的数据,以及有关该请求的一些信息,如HTTP状态码、头信息等。 5. **选择...

    Scrapy框架.docx

    在下载器完成一个页面的下载后,调度器会从队列中取出下一个URL供引擎使用。 3. **Downloader(下载器)**:下载器负责实际的HTTP请求,从网络获取网页内容。它与中间件交互,处理请求和响应,如设置请求头、处理...

    Python_Scrapy.zip

    使用`scrapy.Request`对象,我们可以向`parse`方法传递回调函数,以便处理返回的响应并获取更多页面。如果页面有分页,可以通过检查HTML元素(如页码按钮)并动态构造新的URL来实现翻页。 图片下载是爬虫常见的需求...

    python scrapy 爬虫 下载并保存图片

    这个示例仅作为基础,展示了如何使用Scrapy下载并保存图片。对于更复杂的网页结构和需求,你可能需要调整选择器、解析逻辑以及自定义爬虫行为。 最后,记得在进行网络爬虫时要尊重网站的robots.txt文件规定,遵循...

    详解基于Scrapy的IP代理池搭建

    4. 配置Scrapy-Redis中间件,设置代理IP的使用规则,如每次请求时从队列中取出一个IP,失败后标记失败次数,连续失败一定次数后从队列中移除。 四、优化与扩展 1. IP有效性检测:除了直接验证外,还可以通过第三方...

Global site tag (gtag.js) - Google Analytics