Toapi - 让任何一个网站提供 API 接口.

2017-12-03 23:22:35 +08:00
 prasanta

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

Toapi

这个项目的意义在于让一个没有提供 API 的网站拥有 API 接口。

安装

使用

from pprint import pprint

from toapi import XPath, Item, Api

api = Api('https://news.ycombinator.com/')

class Post(Item):
    url = XPath('//a[@class="storylink"][1]/@href')
    title = XPath('//a[@class="storylink"][1]/text()')

    class Meta:
        source = XPath('//tr[@class="athing"]')
        route = '/'

api.register(Post)

pprint(api.parse('/'))

api.serve()

然后你就让一个网站提供了 api 服务。 那些没有 api 的网站,就让我们自己给他们弄上 api 接口!

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

11146 次点击
所在节点    Python
44 条回复
simpleapples
2017-12-04 11:33:37 +08:00
requirement.txt 里少了 requests 提了一个 pr
woshichuanqilz
2017-12-04 12:01:39 +08:00
这个运行起来怎么调用 api, 小白求指点。 比如就是这个例子里面的代码。
lvwzhen
2017-12-04 12:45:26 +08:00
prolic
2017-12-04 13:09:36 +08:00
挺有意思的
prasanta
2017-12-04 13:14:33 +08:00
@widewing 这个作为数据提供,你可以自己写 API 服务,然后包装一下这个数据。
prasanta
2017-12-04 13:15:05 +08:00
@woshichuanqilz 直接访问网址就可以了,内置服务器是 flask
prasanta
2017-12-04 13:16:47 +08:00
@lvwzhen 这个项目和我的思路差不多。可惜不开源
scriptB0y
2017-12-04 14:00:42 +08:00
可以进一步做成 ifttt
donmen
2017-12-04 14:15:52 +08:00
有没有具体的用法啊,感觉玩不转呢。
LeungJZ
2017-12-04 14:16:38 +08:00
@LeungJZ php node。
nyanyh
2017-12-04 14:17:48 +08:00
赞,以前就想实现了,可惜行动力不足,只做了几个特定网站的支持就烂尾了
prasanta
2017-12-04 14:21:10 +08:00
@donmen 暂时只有几个案例在 example 目录下面。文档会和 1.0 版一起发布。
prasanta
2017-12-04 14:22:45 +08:00
@LeungJZ 暂时没有哦,期待有兴趣朋友实现一下。
woshichuanqilz
2017-12-04 14:57:46 +08:00
@prasanta
我看这个就是一个爬虫的效果, 这个 api 在哪里调用?

![20171204145519]( http://7xpvdr.com1.z0.glb.clouddn.com/1204145459.png)
dassh
2017-12-04 15:05:48 +08:00
能不能返回多级信息?举个例子:你那
dassh
2017-12-04 15:07:32 +08:00
@dassh 不小心点到 enter。。。
你那个电影的例子,返回的是标题的和链接,而想要的是标题和链接里的下载地址
fhefh
2017-12-04 16:57:28 +08:00
已 start~~~
prasanta
2017-12-04 18:26:51 +08:00
@woshichuanqilz 直接运行就行了,访问本地的网址 127.0.0.1:5000/,内置的 flask,可以有 flask 功能。路由通过 Meta.route 配置
prasanta
2017-12-04 18:27:40 +08:00
@dassh 可以呀,下一层配置新的 item 就行了,匹配下一层的路由
xingzhi
2017-12-04 21:41:43 +08:00
没访问几次就被 ban 了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/411668

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX