专家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将spring j_spring_安全检查迁移到登录   log4j2中自定义appender中AppConfig的java问题   在将java转换为Json时是否可以忽略内部类名和变量   用java将PDF文件转换为十六进制格式   java将值从AsyncTask返回到主类   java如何导入带有部署变量类名的静态函数?   java Spring Boot@ConfigurationProperties未从环境检索属性   java为什么API调用需要80毫秒的延迟才能到达控制器(在Google应用程序引擎中)?   XML配置中MarshallingMessageConverter中的java设置MarshallTo获取无效属性“MarshallTo”   java从群中获取facebook帖子   @ComponentScan的java excludeFilters不起作用   java将单选按钮值从一个类传递到另一个类   java使JTextArea在Swing中可滚动   java Android增强现实应用程序:将球坐标旋转到设备坐标系