Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用Spidermon进行Scrapy历史输出比较

如何使用Spidermon进行Scrapy历史输出比较
EN

Stack Overflow用户
提问于 2019-03-18 12:25:48
回答 2查看 257关注 0票数 1

因此,Scrapinghub正在为Scrapy质量保险发布一项新功能。该公司表示,它具有历史比较功能,可以检测当前刮擦数量是否仅低于前一次刮擦数量的50%,这是可疑的。但是,我如何应用它呢?

EN

回答 2

Stack Overflow用户

发布于 2019-03-21 11:52:55

要将当前抓取的项目与上一次运行进行比较,您首先需要将上一次运行的统计数据存储在某个地方。

以Github上的Spidermon example project为例,特别是monitors.py文件。它定义了两个监视器,ItemCountMonitorItemValidationMonitor,前者检查爬行器是否报废了少于1000个项目,如果是,它将send a message on Slack。后者检查是否正确地验证了项模式,如果没有,它还会在Slack上发送一条消息。

现在来回答你的问题。

如果你想检测当前抓取的项目是否比之前的抓取少了50%,你应该将scape统计数据存储在某个地方,甚至存储抓取的项目,假设你将抓取的项目存储在目录/home/user/scraped_items/%(date)s.json中,其中%( date )s是爬行器运行的日期(例如: 2019-01-01)。为了简单起见,假设您每天运行爬行器,并且每天有一个文件。

然后,您可以像这样编写一个监视器:

代码语言:javascript
运行
AI代码解释
复制
import json
from datetime import datetime, timedelta

@monitors.name("Item count dropped")
class ItemCountDroppedMonitor(Monitor):
    @monitors.name("Item count dropped since previous run")
    def test_item_count_dropped(self):
        yesterday = (datetime.now() - timedelta(days=1)).strftime('%Y-%m-%d')
        last_day_item_path = f'/home/user/scraped_items/{yesterday}.json'
        minimum_threshold = 0.5  # 50%
        items_extracted_now = getattr(self.data.stats, "item_scraped_count", 0)
        items_extracted_last_run = json.loads(open(last_day_item_path).read())
        items_extracted_last_run = len(items_extracted_last_run)
        diff = items_extracted_last_run - items_extracted_now
        self.assertFalse(
            diff >= (items_extracted_last_run * minimum_threshold),
            msg="Extracted less items than expected"
        )
票数 1
EN

Stack Overflow用户

发布于 2019-07-09 11:41:47

Spidermon version1.10引入了一个新的统计信息收集器,它将上次作业执行(https://spidermon.readthedocs.io/en/latest/stats-collection.html)的统计信息保存在您的.scrapy目录中。因此,每次执行爬行器时,都会在爬行器实例中提供一个stats_history属性,其中包含以前执行的所有作业的所有统计信息的列表。您不再需要像Luiz在他的回答中建议的那样手动处理统计数据的存储(但原则基本上是相同的)。

有了这些信息,您可以创建自己的监视器来处理这些统计数据,并计算抓取的项目的平均值,并将它们与您最近的执行进行比较(或者您可以根据需要使用统计数据)。您可以在前面提到的文档中看到类似的监视器示例。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55221375

复制
相关文章
Scrapy 使用代理IP并将输出保存到 jsonline
1、使用 scrapy 中间件,您需要在 settings.py 中启用 HttpProxyMiddleware,例如:
jackcode
2023/05/30
3240
Scrapy 使用代理IP并将输出保存到 jsonline
使用 PHP 函数对变量进行比较
使用 PHP 函数对变量 $x 进行比较 表达式 gettype() empty() is_null() isset() boolean : if($x) $x = ""; string TRUE FALSE TRUE FALSE $x = null; NULL TRUE TRUE FALSE FALSE var $x; NULL TRUE TRUE FALSE FALSE $x is undefined NULL TRUE TRUE FALSE FALSE $x = array(); array TRUE
Denis
2023/04/15
1.4K0
在Scrapy中如何使用aiohttp?
当我们从一些代理IP供应商购买代理IP时,他们可能是提供一个网址供我们查询当前可用的代理IP。我们周期性访问这个网址,拿到最新的IP,再分给爬虫使用。
青南
2020/07/16
6.7K0
Scrapy输出中文保存中文
scrapy在保存json文件时容易乱码 settings.py文件改动: ITEM_PIPELINES = { 'tutorial.pipelines.TutorialPipeline': 300, } pipeline.py文件改动: import json import codecs class TutorialPipeline(object): def __init__(self, spider): self.file = codecs.open('data_cn
林清猫耳
2019/03/04
2.8K0
混合线性模型如何进行多重比较
这里,得到的LSD = 6.708889, 多重比较中,用水平的平均值的差值,与LSD比较,如果大于LSD,则认为两水平达到显著性差异。
邓飞
2019/11/04
3.7K0
如何使用Scrapy框架抓取电影数据
随着互联网的普及和电影市场的繁荣,越来越多的人开始关注电影排行榜和评分,了解电影的排行榜和评分可以帮助我们更好地了解观众的喜好和市场趋势.豆瓣电影是一个广受欢迎的电影评分和评论网站,它提供了丰富的电影信息和用户评价。因此,爬取豆瓣电影排行榜的数据对于电影从业者和电影爱好者来说都具有重要意义。
小白学大数据
2023/09/25
3930
如何对矩阵中的所有值进行比较?
需求相对比较明确,就是在矩阵中显示的值,需要进行整体比较,而不是单个字段值直接进行的比较。如图1所示,确认矩阵中最大值或者最小值。
逍遥之
2020/05/14
8.2K0
【说站】java如何进行数据的比较
首先,Java中的数据存储在JVM中,而基本类型的数据存储在JVM的局部变量表中,也可以理解为所谓的“栈”。
很酷的站长
2022/11/23
8460
【说站】java如何进行数据的比较
【说站】python比较运算如何使用
1、除数值操作外,整数型和浮点型还可以进行比较操作,即比较两个数值的大小。比较结果是布尔值。
很酷的站长
2022/11/23
5960
【说站】python比较运算如何使用
Scrapy ---- 使用步骤
python、scrapy和pycharm已经安装好,并且python和scrapy环境已经配置好。scrapy安装比较简单的方法是通过pycharm IDE进行安装。 一、创建工程 命令行输入:sc
SuperHeroes
2018/05/30
7800
Scrapy框架的使用之Scrapy入门
接下来介绍一个简单的项目,完成一遍Scrapy抓取流程。通过这个过程,我们可以对Scrapy的基本用法和原理有大体了解。 一、准备工作 本节要完成的任务如下。 创建一个Scrapy项目。 创建一个Spider来抓取站点和处理数据。 通过命令行将抓取的内容导出。 将抓取的内容保存的到MongoDB数据库。 二、准备工作 我们需要安装好Scrapy框架、MongoDB和PyMongo库。 三、创建项目 创建一个Scrapy项目,项目文件可以直接用scrapy命令生成,命令如下所示: scrapy st
崔庆才
2018/06/25
1.4K0
scrapy 进阶使用
乐百川
2018/01/09
2K0
scrapy 进阶使用
学习爬虫之Scrapy框架学习(六)–1.直接使用scrapy;使用scrapy管道;使用scrapy的媒体管道类进行猫咪图片存储。媒体管道类学习。自建媒体管道类存储图片
大家好,又见面了,我是你们的朋友全栈君。 1.引入: 先来看个小案例:使用scrapy爬取百度图片。( 目标百度图片URL: https://image.baidu.com/search/
全栈程序员站长
2022/09/13
4160
scrapy爬虫笔记(1):scrapy基本使用
之前在写爬虫时,都是自己写整个爬取过程,例如向目标网站发起请求、解析网站、提取数据、下载数据等,需要自己定义这些实现方法等
冰霜
2022/03/15
3760
scrapy爬虫笔记(1):scrapy基本使用
如何使用tsharkVM分析tshark的输出
tsharkVM这个项目旨在构建一台虚拟机,以帮助广大研究人员分析tshark的输出结果。虚拟设备是使用vagrant构建的,它可以使用预安装和预配置的ELK堆栈构建Debian 10。
FB客服
2022/11/14
1.5K0
如何使用tsharkVM分析tshark的输出
PyCharm下进行Scrapy项目的调试
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/article/details/72835653
大黄大黄大黄
2018/09/14
1.3K0
PyCharm下进行Scrapy项目的调试
【说站】python变量如何进行格式化输出
以上就是python变量进行格式化输出的方法,希望对大家有所帮助。更多Python学习指路:python基础教程
很酷的站长
2022/11/23
6950
【说站】python变量如何进行格式化输出
在windows下如何新建爬虫虚拟环境和进行Scrapy安装
Scrapy是Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。
Python进阶者
2019/03/04
4730
在windows下如何新建爬虫虚拟环境和进行Scrapy安装
如何使用 scrapy.Request.from_curl() 方法将 cURL 命令转换为 Scrapy 请求
Scrapy 是一个用 Python 编写的开源框架,用于快速、高效地抓取网页数据。Scrapy 提供了许多强大的功能,如选择器、中间件、管道、信号等,让开发者可以轻松地定制自己的爬虫程序。
jackcode
2023/08/08
4510
如何使用 scrapy.Request.from_curl() 方法将 cURL 命令转换为 Scrapy 请求
在windows下如何新建爬虫虚拟环境和进行scrapy安装
Scrapy是Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。
Python进阶者
2019/02/11
7150
在windows下如何新建爬虫虚拟环境和进行scrapy安装

相似问题

如何在Scrapy Spidermon中使用Mandrill发送电子邮件报告

124

使用Scrapy进行the抓取,输出在哪里?

28

如何使用scrapy进行分页

11

不使用Scrapy输出

11

Scrapy:如何对每个数据进行多行输出

27
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档