跳转到主要内容

分析Scrapy Cloud数据

项目描述

Arche

PyPI PyPI - Python Version GitHub Build Status Codecov Code style: black GitHub commit activity

pip install arche

Arche(发音为Arkey)帮助使用一组定义的规则验证抓取数据,例如

  • 使用JSON模式进行验证
  • 覆盖率(项目、字段、分类数据,包括布尔值和枚举)
  • 重复项
  • 垃圾符号
  • 比较两个作业

我们在Scrapinghub中使用它,以及其他工具,以确保抓取数据的质量

安装

Arche需要Jupyter环境,支持JupyterLabNotebook UI

对于JupyterLab,您需要正确安装plotly扩展

然后只需执行pip install arche

为什么

持续检查抓取数据的质量。例如,如果您抓取了一个网站,典型的方法是使用Arche验证数据。您也可以创建一个架构,然后设置Spidermon

开发者设置

pipenv install --dev
pipenv shell
tox

贡献

欢迎任何贡献!如果您想承担某项任务或建议改进/报告错误,请参阅https://github.com/scrapinghub/arche/issues

变更

最近的版本显示在最上面。每个版本显示

  • 新增:新类、方法、函数等
  • 更改:附加参数、输入或输出的更改等
  • 修复:不会改变文档行为的错误修复

注意,最上面的版本是GitHub上未发布的主分支上的变更。项目后面的括号显示该变更的贡献者姓名或GitHub ID。

Keep a Changelog语义化版本控制

[0.3.6] (2019-07-12)

新增

更改

  • Arche.report_all()默认不缩短报告,添加了short参数。
  • 数据与Dash和Spidermon一致:从DataFrame、原始数据、基本架构中删除了_type, _key字段,#104,#106
  • df.index现在存储_key
  • basic_json_schema()支持deleted作业
  • 支持Collections的start,#112
  • enum被视为category标签,#18
  • 垃圾符号搜索嵌套字段的str表示形式,而不是展开的df,#130
  • 显示实际的覆盖率差异(负/正)而不是绝对值,#114

修复

  • Arche.glance(), #88
  • 在架构验证错误中显示项目链接,#89
  • 类别图中存在空NAN条形图,#93
  • data_quality_report(), #95
  • 如果包含项目0,则Collection项的数量不正确,#112

删除

  • 每个项目的响应比率规则
  • 弃用了expand参数并删除了flat_df,因为垃圾规则自己处理嵌套数据,#133

[0.3.5] (2019-05-14)

新增

  • Arche()支持任何具有项目字典的迭代器,修复了jsonschema一致性,#83
  • Items.from_array从迭代器中读取原始数据,#83

更改

修复

删除

[0.3.4] (2019-05-06)

修复

  • basic_json_schema()由于长1.0类型而失败,#80

[0.3.3] (2019-05-03)

新增

  • 接受数据帧作为源或目标,#69

更改

  • data_quality_report绘制了相同的“字段覆盖率”而不是绿色的“抓取字段覆盖率”
  • 将绘图主题从ggplot2更改为seaborn,#62
  • 相同的源和目标引发错误,之前是警告
  • 标记为绿色的PASSED。

修复

删除

  • 弃用了Arche.basic_json_schema(),使用basic_json_schema()
  • 删除了Quickstart.md,因为它冗余 - 文档位于notebooks中

[0.3.2] (2019-04-18)

新增

  • 允许直接从bitbucket读取私有原始架构,#58

更改

  • 在打印图形之前删除进度小部件
  • 新的plotly v4 API

修复

  • 当URL为nan时,失败的Compare Prices For Same Urls,#67
  • Jupyter Notebook中的空图,#63

删除

  • 抓取项历史图

[0.3.1] (2019-04-12)

修复

  • 由于缺少plotlyjs导致的空图,#61

[0.3.0] (2019-04-12)

修复

  • 笔记本大小过大,用plotly和ipython替换了cufflinks,#39

更改

  • 字段覆盖率现在以柱状图形式打印,#9
  • 字段计数重命名为覆盖率差异,并生成2个柱状图,#9,#51
    • 从作业统计字段计数中的覆盖率,反映了每个字段的作业覆盖率
    • 覆盖率差异超过5%,打印覆盖率之间的>5%差异(之前是比率差异)
  • 比较抓取类别重命名为类别覆盖率差异,并为每个类别生成2个柱状图,#52
    • 字段field的覆盖率,反映了字段在两个作业中的值计数(类别)覆盖率
    • 字段field的覆盖率差异超过10%,显示了类别覆盖率之间的>10%差异
  • 布尔字段绘制了布尔字段的覆盖率图,反映了两个作业中布尔字段的归一化值计数,#53

删除

  • cufflinks依赖项
  • 已弃用的category_field标签

[2019.03.25]

新增

  • CHANGES.md
  • 新的arche.rules.duplicates.find_by()用于通过选择的列查找重复项
import arche
from arche.readers.items import JobItems
df = JobItems(0, "235801/1/15").df
arche.rules.duplicates.find_by(df, ["title", "category"]).show()
  • basic_json_schema().json()以JSON格式打印模式
  • Result.show()用于打印规则结果,例如
from arche.rules.garbage_symbols import garbage_symbols
from arche.readers.items import JobItems
items = JobItems(0, "235801/1/15")
garbage_symbols(items).show()
  • 笔记本到文档

更改

  • 标签规则返回未使用的标签,#2
  • basic_json_schema()以Python字典形式打印模式

已弃用

  • Arche().basic_json_schema()已被弃用,改用arche.basic_json_schema()

删除

修复

  • Arche().basic_json_schema()不使用items_numbers参数

2019.03.18

  • 上次发布没有CHANGES更新

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分发

arche-0.3.6.tar.gz (2.7 MB 查看哈希值)

上传时间

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面