首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Scrapy Spider关闭后获得`item_scraped_count` - Python27

在Scrapy Spider关闭后获得item_scraped_count,可以通过编写一个自定义的扩展来实现。

首先,创建一个Python文件,命名为item_count_extension.py,并在文件中编写以下代码:

代码语言:python
代码运行次数:0
复制
from scrapy import signals

class ItemCountExtension(object):
    def __init__(self):
        self.item_count = 0

    @classmethod
    def from_crawler(cls, crawler):
        ext = cls()
        crawler.signals.connect(ext.spider_closed, signal=signals.spider_closed)
        return ext

    def spider_closed(self, spider):
        self.item_count = spider.crawler.stats.get_value('item_scraped_count')
        self.process_item_count()

    def process_item_count(self):
        # 在这里可以对item_count进行进一步处理,如保存到数据库或输出到日志等
        print("Total items scraped:", self.item_count)

然后,在Scrapy项目的settings.py文件中添加以下配置:

代码语言:python
代码运行次数:0
复制
EXTENSIONS = {
    'your_project_name.item_count_extension.ItemCountExtension': 500,
}

your_project_name替换为你的Scrapy项目的名称。

最后,在Scrapy Spider关闭后,你将能够获得item_scraped_count的值,并可以在process_item_count方法中对其进行进一步处理,如保存到数据库或输出到日志等。

注意:以上代码示例中,并未提及任何特定的云计算品牌商,如需了解腾讯云相关产品和产品介绍,建议访问腾讯云官方网站获取更详细的信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Scrapy框架的使用之Scrapyrt的使用

spider_name:Spider名称,字符串类型,必传参数。如果传递的Spider名称不存在,则返回404错误。 url:爬取链接,字符串类型,如果起始链接没有定义就必须要传递这个参数。...它定义了Scrapy执行请求的Request的最大限制,定义为5,则表示最多只执行5次Request请求,其余的则会被忽略。...dupefilter/filtered": 1, "finish_reason": "finished", "finish_time": "2017-07-12 15:09:02", "item_scraped_count...spider_name:Spider名称,字符串类型,必传参数。如果传递的Spider名称不存在,则返回404错误。 max_requests:最大请求数量,数值类型,可选参数。...它定义了Scrapy执行请求的Request的最大限制,定义为5,则表示最多只执行5次Request请求,其余的则会被忽略。 request:Request配置,JSON对象,必传参数。

2.2K30

《Learning Scrapy》(中文版)第5章 快速构建爬虫一个具有登录功能的爬虫使用JSON APIs和AJAX页面的爬虫在响应间传递参数一个加速30倍的项目爬虫可以抓取Excel文件的爬虫总结

总结一下,单单一个操作,登录,可能涉及多个服务器往返操作,包括POST请求和HTTP重定向。Scrapy处理大多数这些操作是自动的,我们需要编写的代码很简单。...INFO: Closing spider (finished) INFO: Dumping Scrapy stats: {......INFO: Closing spider (finished) INFO: Dumping Scrapy stats: ......INFO: Dumping Scrapy stats: 'downloader/request_count': 3, ... 'item_scraped_count': 90,......如果你想用scrapy parse来调试,你需要如下设置spider参数: $ scrapy parse --spider=fast http://web:9312/properties/index_00000

4K80
  • Scrapy 爬虫框架入门案例详解

    不过这个Class必须要继承Scrapy提供的Spiderscrapy.Spider,并且你还要定义Spider的名称和起始请求以及怎样处理爬取的结果的方法。...在最后Scrapy输出了整个抓取过程的统计信息,请求的字节数,请求次数,响应次数,完成原因等等。 这样整个Scrapy程序就成功运行完毕了。...通过Scrapy提供的Feed Exports我们可以轻松地输出抓取结果到文件,对于一些小型项目这应该是足够了,不过如果想要更复杂的输出,输出到数据库等等,你可以使用Item Pileline更方便地实现...使用Item Pipeline 至此,你已经可以成功地完成抓取并将结果保存了,如果你想进行更复杂的操作,将结果保存到数据库,MongoDB,或者筛选某些有用的Item,可以定义Item Pileline...open_spider,当spider被开启时,这个方法被调用。在这里主要进行了一些初始化操作。 close_spider,当spider关闭时,这个方法会调用,在这里将数据库连接关闭

    3.9K01

    Scrapy框架的使用之Scrapy入门

    不过这个Class必须继承Scrapy提供的Spiderscrapy.Spider,还要定义Spider的名称和起始请求,以及怎样处理爬取的结果的方法。 也可以使用命令行创建一个Spider。...最后,Scrapy输出了整个抓取过程的统计信息,请求的字节数、请求次数、响应次数、完成原因等。 整个Scrapy程序成功运行。...十、保存到文件 运行完Scrapy,我们只在控制台看到了输出结果。如果想保存结果该怎么办呢?...不过如果想要更复杂的输出,输出到数据库等,我们可以使用Item Pileline来完成。...open_spider。当Spider开启时,这个方法被调用。上文程序中主要进行了一些初始化操作。 close_spider。当Spider关闭时,这个方法会调用。上文程序中将数据库连接关闭

    1.3K30

    《Learning Scrapy》(中文版)第9章 使用Pipelines

    何在Python中压缩存储值或例外呢?因为Python是一种函数语言,根据是否有例外,我们在self.records中保存小函数(lambdas),调用callback或errback。...'geo_pipeline/misses': 35, 'item_scraped_count': 1019, 当填充缓存时,我们看到抓取的延迟变高。缓存结束时,延迟降低。...爬虫关闭时,我们调用连接池的close()方法。 我们的process_item()方法包装了dbpool.runInteraction()。...=1000 运行这条命令,返回MySQL控制台,可以看到如下记录: mysql> SELECT COUNT(*) FROM properties; +----------+ | 1006 |...并且你学会了如何在进程中执行复杂的功能,用Item Processing Pipelines存储Items。我们看到了添加pipelines对延迟和吞吐量的影响。通常,延迟和吞吐量是成反比的。

    1.5K20

    《Learning Scrapy》(中文版)第10章 理解Scrapy的性能

    使用远程登录控制组件 为了理解Requests/Items是如何在管道中流动的,我们现在还不能真正的测量流动。...'item_scraped_count': 2485, ...}...这里对我们最重要的是item_scraped_count,它可以通过stats.get_value ('item_scraped_count')之间访问。...应该为每个代码使用多线程,第9章所示,或在Scrapy的外部批次运行,第11章会看到例子。 解决:假设代码是继承而来的,你并不知道阻塞代码位于何处。...实例4-大量响应造成溢出 症状:下载器几乎满负荷运转,一段时间关闭。这种情况循环发生。抓取器的内存使用很高。 案例:设置和以前相同(使用treq),但响应很高,有大约120kB的HTML。

    1.2K20

    Scrapy从入门到放弃4--管道pipelines使用

    Scrapy管道的使用 学习目标: 掌握 scrapy管道(pipelines.py)的使用 ---- 之前我们在scrapy入门使用一节中学习了管道的基本使用,接下来我们深入的学习scrapy管道的使用...(self, spider): 在爬虫开启的时候仅执行一次 close_spider(self, spider): 在爬虫关闭的时候仅执行一次 2....', 'a', encoding='utf-8') def close_spider(self, spider): # 在爬虫关闭的时候仅执行一次 if spider.name...,值表示距离引擎的远近,越近数据会越先经过:权重值小的优先执行 有多个pipeline的时候,process_item的方法必须return item,否则一个pipeline取到的数据为None值...(spider) :能够在爬虫开启的时候执行一次 close_spider(spider) :能够在爬虫关闭的时候执行一次 上述俩个方法经常用于爬虫和数据库的交互,在爬虫开启的时候建立和数据库的连接,在爬虫关闭的时候断开和数据库的连接

    67020

    Scrapy详解之中间件(Middleware)

    下载器中间件(Downloader Middleware) 如上图标号4、5处所示,下载器中间件用于处理scrapy的request和response的钩子框架,可以全局的修改一些参数,代理ip,header...None即可 自定义下载器中间件 有时我们需要编写自己的一些下载器中间件,使用代理,更换user-agent等,对于请求的中间件实现process_request(request, spider);对于处理回复中间件实现...中间件(Spider Middleware) 文章第一张图所示,spider中间件用于处理response及spider生成的item和Request 启动spider中间件必须先开启settings...': None, } 数字越小越靠近引擎,process_spider_input()优先处理,数字越大越靠近spider,process_spider_output()优先处理,关闭用None 编写自定义...(response, result, spider) 当spider处理response返回result时,这个方法被调用,必须返回Request或Item对象的可迭代对象,一般返回result process_spider_exception

    1.9K20

    scrapy 爬取校花网,并作数据持久化处理

    cookies_Ennalle =False日志等级和请求传参   - LOG_LEVEL ='ERROR'   - LOG_FILE ='path'请求传参的应用场景:   -爬取且解析的数据没有在同一个页面上(列表页...  xiaohua  二: 进入目录创建爬虫    scrapy genspider xiaohuademo  三: 开始操作    1: 前提准备:      首先注释掉域名限制,防止不必要的错误:... 2: 关闭setting里面的ROBOTSTXT_OBEY  ,更改UA头注意我们这里不遵守机器人协议!...降低io 开启关闭减少内存 # 该方法接收item 的数据 # 只会被调用一次 def process_item(self, item, spider): #获取解析内容...(self,spider): self.cursor.close() #关闭事务 self.conn.close() # 关闭连接 print('数据库入完成

    433111

    Python爬虫知识点四--scrapy框架

    “下一页”的链接,它们 会被传回Scheduler;另一种是需要保存的数据,它们被送到Item Pipeline里,进行 后期处理(详细分析、过滤、存储等)。...初始化爬虫框架  Scrapy 命令: scrapy startproject qqnews ? ps:真正的项目是在spiders里面写入的  三。scrapy组件spider 爬取流程  1....3 .在回调函数里面,使用选择器解析页面内容 ,并生成解析的结果Item。 4....4.Scrapy组件Item Pipeline 经常会实现以下的方法:  open_spider(self, spider) 蜘蛛打开的时执行  close_spider(self, spider)...蜘蛛关闭时执行  from_crawler(cls, crawler) 可访问核心组件比如配置和 信号,并注册钩子函数到Scrapy中  pipeline真正处理逻辑 定义一个Python类,实现方法

    60650

    Scrapy爬虫轻松抓取网站数据(以bbs为例,提供源码)

    当页面被蜘蛛解析,将被发送到项目管道,并经过几个特定的次序处理数据。 下载器中间件:位于Scrapy引擎和下载器之间的钩子框架,主要是处理Scrapy引擎与下载器之间的请求及响应。...提取上述的poster的数据: 1 sel.xpath('//pre/a/text()').extract() 使用Item Item 对象是自定义的python字典。...以下是item pipeline的一些典型应用: 清理HTML数据 验证爬取的数据(检查item包含某些字段) 查重(并丢弃) 将爬取结果保存,保存到数据库、XML、JSON等文件中 编写 Item...参数: spider (Spider object) – 被开启的spider close_spider(spider)   当spider关闭时,这个方法被调用,可以再爬虫关闭后进行相应的数据处理。...参数: spider (Spider object) – 被关闭spider   本文爬虫的item pipeline如下,保存为XML文件: 12345678910111213141516171819202122232425262728293031

    2.3K90
    领券