用于 Web 爬虫、ETL、数据管道任务开发的高性能 Python 数据驱动编程框架。
特性:
数据驱动编程框架
基于协程的并行
基于类型和内容的函数路由
安装:
pip install -U databot
每2秒加载一次CoinDesk比特币价格. 高级价格聚合案例参见 here.
from databot.flow import Pipe, Timer from databot.botframe import BotFrame from databot.http.http import HttpLoader def main(): Pipe( Timer(delay=2), # send timer data to pipe every 2 sen "http://api.coindesk.com/v1/bpi/currentprice.json", # send url to pipe when timer trigger HttpLoader(), # read url and load http response lambda r: r.json['bpi']['USD']['rate_float'], # read http response and parese as json print, # print out ) BotFrame.render('simple_bitcoin_price') BotFrame.run() main()
databot 生成的流程图:
节点并行运行可以很好的处理流数据
执行函数: BotFrame.render(‘bitcoin_arbitrage’) Databot 将会把数据处理流程生成为 graphviz 图片:https://github.com/kkyon/databot/blob/master/examples/bitcoin_arbitrage.png
配置可重放模式: config.replay_mode=True 异常发生在第N步的时候,不用从第一步执行到第N步,Databot可以从完成的最近点(通常是第N-1步)重新开始执行,在开发阶段可以节约很多时间。
config.replay_mode=True