分析Scrapy Cloud数据
项目描述
Arche
pip install arche
Arche(发音为Arkey)帮助使用一组定义的规则验证抓取数据,例如
- 使用JSON模式进行验证
- 覆盖率(项目、字段、分类数据,包括布尔值和枚举)
- 重复项
- 垃圾符号
- 比较两个作业
我们在Scrapinghub中使用它,以及其他工具,以确保抓取数据的质量
安装
Arche需要Jupyter环境,支持JupyterLab和Notebook UI
对于JupyterLab,您需要正确安装plotly扩展
然后只需执行pip install arche
为什么
持续检查抓取数据的质量。例如,如果您抓取了一个网站,典型的方法是使用Arche验证数据。您也可以创建一个架构,然后设置Spidermon
开发者设置
pipenv install --dev
pipenv shell
tox
贡献
欢迎任何贡献!如果您想承担某项任务或建议改进/报告错误,请参阅https://github.com/scrapinghub/arche/issues。
变更
最近的版本显示在最上面。每个版本显示
- 新增:新类、方法、函数等
- 更改:附加参数、输入或输出的更改等
- 修复:不会改变文档行为的错误修复
注意,最上面的版本是GitHub上未发布的主分支上的变更。项目后面的括号显示该变更的贡献者姓名或GitHub ID。
[0.3.6] (2019-07-12)
新增
- 类别规则,通过图表显示每个字段的唯一值和计数。默认情况下,
report_all()
只包括具有小于或等于10个唯一值的字段。请参阅https://arche.readthedocs.io/en/latest/nbs/Rules.html#Category-fields,#100 - 类别文档
更改
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一致性,#83Items.from_array
从迭代器中读取原始数据,#83
更改
- 如果直接从pandas df读取,则在numpy数组中存储原始数据。有关注意事项,请参阅https://pandas.ac.cn/pandas-docs/stable/user_guide/gotchas.html#support-for-integer-na
修复
删除
[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。
修复
- 在线文档现在渲染图形https://arche.readthedocs.io/en/latest/,#41
- 在
report_all()
中恢复了错误颜色。
删除
- 弃用了
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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f19aca0d572e4cb25da064adbec898a27924b80c36205d5c50717ae83a986e4d |
|
MD5 | 47c8a8f3dcc0879a43bc6a2868c48c86 |
|
BLAKE2b-256 | 3c20ba1b60a885cd417d18ec00c4a86246cb6ffbf71745332db0b65be5d8f64f |