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 条回复
naiba
2017-12-04 23:00:30 +08:00
@xingzhi +1

你这个没什么卵用。当服务用的话就是个爬虫 /反向代理,访问量大了指定被 ban,买代理的话成本又高。
本地用的话自己想怎么爬怎么爬,两分钟搞定的事情不需要用这个。

最后:没什么卵用😒
zyqf
2017-12-04 23:53:30 +08:00
如何处理 js ?
prasanta
2017-12-05 09:03:32 +08:00
@xingzhi
@naiba
1. 同一个 url 只访问一次, 缓存系统
2. 和通常爬虫相比最大的优势是自动实时更新
prasanta
2017-12-05 09:03:57 +08:00
@zyqf 这个库用的是 selenium 加载异步页面

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

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

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

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

© 2021 V2EX