Python库Toapi正式发布 - 再也不愁没有数据!

Toapi - 再也不愁没有数据!

Github: https://github.com/gaojiuli/toapi

进入 Toapi

你是否有这样的需求,有一个很好的 idea,却没有很好的数据来源,好不容易找到相关数据来源的网站,却发现没有 API (或许有但需要收费),那么,我可以告诉你,Toapi 为此提供了很好的解决方案 ,它可以:

它的最后效果

// http://127.0.0.1:5000/pic/?q=coffee

{ “Pixabay”: [ { “img”: “https://cdn.pixabay.com/photo/2017/06/21/05/28/coffee-2426110__340.png” }, { “img”: “/static/img/blank.gif” } ], “Pexels”: [ { “img”: “https://images.pexels.com/photos/302899/pexels-photo-302899.jpeg?h=350&auto=compress&cs=tinysrgb” }, { “img”: “https://images.pexels.com/photos/34085/pexels-photo.jpg?h=350&auto=compress&cs=tinysrgb” } ] }

  • 短暂的开发周期:很少量代码就可以将某个网站构建成你自己的 API 服务
  • 稳健的服务支持:你只需快速地构建以及使用,其它方面就安心地交给Toapi
    • 自动对数据缓存,提供MemoryCache RedisCache MemcachedCache三种缓存方案
    • html 源文件本地持久化,提供本地以及数据库支持
    • 增量更新
    • 自定义路由
    • 自定义多站组合 API
  • 多样的模板选择:每一个Toapi 服务都可以被其它使用者安装,或许你无需编写代码,就可以安装其它服务,随即组合成自己的服务,官方维护了一个模板列表 - awesome-toapi

Toapi 是一个用Python编写的开源项目,若你有特殊的功能需求,可以自己定制,我们为你提供完整的生态:

使用 Toapi

让我们看下面这个简单的例子 - 仅仅是演示 目标网站是hackernews

from toapi import XPath, Item, Api, Settings

class MySettings(Settings): web = { “with_ajax”: True, “request_config”: {}, “headers”: None }

api = Api(‘https://news.ycombinator.com’, settings=MySettings)

class Post(Item): url = XPath(’//a[@class=“storylink”]/@href’) title = XPath(’//a[@class=“storylink”]/text()’)

class Meta:
    source = XPath('//tr[@class="athing"]')
    route = {'/news?p=:page': '/news?p=:page'}

class Page(Item): next_page = XPath(’//a[@class=“morelink”]/@href’)

class Meta:
    source = None
    route = {'/news?p=:page': '/news?p=:page'}

def clean_next_page(self, next_page):
    return "http://127.0.0.1:5000/" + next_page

api.register(Page) api.register(Post)

api.serve()

Visit http://127.0.0.1:5000/news?p=1

不到四十行代码,你已经拥有了hackernews的 API 服务,介绍下目前官方提供的模板:

最后

Toapi 不会停止进步,从简陋的第一版到现在基本功能完善的版本,一个月来我们有近 400 次 commits,其中辛苦不必多说。

我们诚恳地希望开发者们使用 Toapi 来构建服务,并提出你的宝贵意见,上手 Toapi 是一件极其简单的事情,我们希望看到 Toapi 能为开源社区带来一点贡献,能为你减少构建 API 的麻烦。

Toapi 开发团队([@gaojiuli](/user/gaojiuli), [@howie6879](/user/howie6879), [@wuqiangroy](/user/wuqiangroy))


Python库Toapi正式发布 - 再也不愁没有数据!

32 回复

自顶一下,可以说是非常好用了。


我无法理解你的问题。

性质一样么?

将网站转化为一个 api 服务

实际使用过用来开发了一个下厨房的 API,开发效率极高,趁正式版发布把自己用 toapi 写的项目也完善了一下

传送门: https://github.com/ruter/xiachufang-api

这个增量是体现在 API 上的

这个服务是完全跑在本地的吗?

需要登录,或者 post 操作呢

自定义路由即可,app 基于 flask

看看,感觉挺好玩的

可以部署到任何地方

低成本的聚合 api,赞一下

顶 又可以愉快的开发小程序了

赞一个,学习一下

又有什么好点子

用过楼主的 django 脚手架,赞哈哈哈

想加入!从来没在 github 里加入过组织啊。selenium 和 flask 都会!楼主看我

数据有版权问题吗?

你自己通过框架获取的数据,并不是框架提供的

这个好,已经 star

这个真不错!

可以来个演示站

是个在线爬虫服务啊

不太懂其中的原理,很好奇,是可以把别人家的网站 转换成 api 接口吗?? 好神奇

看 #5 我写的,可以自己克隆了跑一下


这个其实就相当于爬虫,把网页取下来,然后获取对应元素的内容

很好,先 star 一波,不过这种好像不能跑动态服务把。

可以跑,所有动态页面都能跑

你的描述很准确

恭喜一天斩获 300+star,学习一下

回到顶部