专家python编程-数据处理框架

Atomisator的Python项目详细描述


大局

atomistator是一个通用的数据处理框架 有插件。它的目的是提供一个引擎来构建 数据处理任务。

  1. 你提供了插件来完成工作。
  2. 您将描述如何在配置文件中组合它们。
  3. 原子化学家做这项工作。

原子发生器分两步工作:

  • 采集:采集、过滤、存储数据。
  • 渲染:增强并渲染存储的数据。
The big picture

大局。

快速启动

让我们用原子加速器来建造一个星球!

为此,在某处创建一个配置文件, 使用-c选项:

$ atomisator -c atomisator.cfg

生成默认配置文件, 如下所示(删除的注释):

[atomisator]

sources =
    rss http://tarekziade.wordpress.com/atom
    rss http://digg.com/rss/index.xml

filters =

enhancers =

outputs =
    rss atomisator.xml http://atomisator.ziade.org/example "Meta feed" "Automatic feed created by Atomisator."

database = sqlite:///atomisator.db

此文件可以由atomisator解释,并带有-f选项:

$ atomisator -f /path/to/atomisator.cfg
Reading source http://tarekziade.wordpress.com/atom
10 entries read.
Reading source http://digg.com/rss/index.xml
40 entries read.
50 total.
Writing feed in atomisator.xml
Feed ready.

也可以将路径指定为自由参数:

$ atomisator /path/to/atomisator.cfg

原子缔造者将读取源,然后生成 一个atomistator.xml文件。

两相过程

您还可以单独调用填充数据库的进程:

$ atomisator -r -f /path/to/atomisator.cfg

在这种情况下,不会生成feed。

-g选项可用于自行生成xml文件:

$ atomisator -g -f /path/to/atomisator.cfg

这对于在不同的过程和不同的时间基础上读取源和生成feed非常有用。

有关其他有用的选项,请运行:

$ atomisator --help

更多详细信息

如前所述,原子化器分两步工作:

  • 采集:采集、过滤、存储数据。
  • 渲染:增强并渲染存储的数据。

收集数据

通过读取(1)和过滤(2)数据来收集数据。 这两个步骤是通过调用插件来完成的。

例如,如果您想从rss提要获取一些数据, 您可以使用默认提供的rss插件, 并在atomistator配置文件中使用:

...
sources =
    rss     http://tarekziade.wordpress.com/atom
    rss     http://digg.com/rss2.xml
...

这告诉Atomisator寻找rss的reader插件, 并以url作为参数调用它。插件必须 返回条目。

下一步是筛选收集的条目。过滤装置 要么动态更改数据,要么丢弃数据。

例如,如果要删除包含 特定的表达式,您可以使用stopwords插件 默认情况下提供并在原子化器中使用的 配置文件:

...
filters =
    stopwords   word_list.txt
...

这将告诉atomisator查找stopwords插件和 用收集的条目调用它。插件使用 在指向的文件中列出,并且数据的外观与 给定正则表达式。如果是,则丢弃数据。

渲染数据

收集数据后,将其存储在数据库中。 现在可以使用增强器(5)和输出来渲染它 (6)过滤器。

例如,如果要查看条目是否对应于 已被挖掘的网页,您可以使用digg插件:

...
enhancers =
    digg
...

这个插件将由atomisator调用,并将注入 通过rpc查询digg.com在数据中添加digg注释。

最后,在最后一步调用输出插件。为了 示例rss输出插件将在 rss 2.0xml文件:

...
outputs =
    rss atomisator.xml http://atomisator.ziade.org/example meta "Automatic feed created by Atomisator."
...

插件名称后面的所有参数都将发送给它, 除了条目。

可用插件

XXX待写

如何编写插件

XXX待写

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java应该考虑使用DTO来代替Spring控制器层吗?   java为什么要将Maven与Git结合起来?   java试图将CSV转换为XLSX,但使用了错误的逗号拆分列   mysql Spring 3+Hibernate:java。sql。BatchUpdateException:无法添加或更新子行(ManyToMany)   java基本字符串反转器   java无法使用RestControllerAdvice为身份验证失败生成自定义错误消息   java当只允许SQLException时,如何抛出EOFEException?   java如何创建播放模块?   Android中匿名类的java实例化异常问题   java两个停靠组件,其中第二个组件填充剩余空间   java如何在按钮延迟时启用它   Java中正在运行的应用程序中的后台进程   java我正试图从一个字符串打印出这个字符输出   如何使用java socket通过两个不同的wifi连接两台电脑?   javaapachecamel:如何将分层数据从数据库转换为pojo   java Webrtc:OniconConnectionChange和onConnectionChange之间有什么区别   java如何重写已经创建的JTable方法   爪哇扫雷机堆垛机   雅加达ee Java ee EJB 3.0 Glassfish