CloudQuery: 把任意网站变成 API

2019-01-24 17:07:22 +08:00
 timqian

源代码以及演示可以在这里看到: https://github.com/cloudfetch/cloudquery

这个工具是从我的另一个项目抽取出来的 https://cloudfetch.info。感觉可以用这个用具从一些网站方便的得到一些数据以备创建新应用所有。希望对大家有用

7092 次点击
所在节点    分享创造
26 条回复
stone666
2019-01-24 17:19:09 +08:00
那? 12306 ?
timqian
2019-01-24 18:47:24 +08:00
@stone666 啥意思🤔
kkkkkrua
2019-01-24 19:19:39 +08:00
12306 出来的是 html #1
luoway
2019-01-24 19:41:14 +08:00
natforum
2019-01-24 19:54:27 +08:00
方便制作 app ?
mingff258
2019-01-24 19:59:57 +08:00
不错,最近正好有这方面的需求,收藏了
falcon05
2019-01-24 20:02:37 +08:00
雅虎有个 YQL 的东东,类似,不知道现在还能用吗?
xomix
2019-01-24 20:26:19 +08:00
这个是不是可以缩写成
PaaA
web Page as a web Api
d5
2019-01-24 20:45:29 +08:00
太酷了,果断 star
Tink
2019-01-24 21:05:06 +08:00
6 啊!
xqin
2019-01-24 21:46:59 +08:00
反馈个 bug

https://github.com/cloudfetch/cloudquery/blob/master/app.js#L63

这里第 63 行,使用的变量未定义, 会变成全局变量, 变成全局之后, 会产生 bug.
当 A 请求进来之后, 执行到 launchChrome 的时候,是一个 await,
然后这时候 B 请求过来了, B 请求传入的 selectors 会覆盖 A 请求中后续 #130 行处理时的取值(会变成 B 的).

即这个数据串了...
xqin
2019-01-24 21:54:52 +08:00
另外没有对传入的 selector 做一个基本的有效性验证, 可能导致下面这两处, 在 launch 出来的 Chrome 里面执行恶意脚本.
比如 while(true) 等?
https://github.com/cloudfetch/cloudquery/blob/master/app.js#L132
https://github.com/cloudfetch/cloudquery/blob/master/app.js#L135
xiaotuzi
2019-01-24 22:42:15 +08:00
也就爬取链接和 dom,没有对应的链接…
timqian
2019-01-24 22:59:41 +08:00
@kkkkkrua
@stone666 显示是可以显示的,要等一会儿页面加载一些其他东西。不过显示的有点问题,这个问题也存在于其他一些网站,因为这个工具是把 aws lambda 上的 chrome 渲染出来的 html 拿过来放到 iframe 里,有些外部 css img 什么的会不正常,暂时还没找到很好的解决办法。
![]( https://user-images.githubusercontent.com/5512552/51685840-2b60f300-202a-11e9-9742-f1ca5ab2f53e.png)

@xqin 感谢!变量的问题代码是没太写好,这里是应该加个 const,之后加个 lint。有效性验证也是很必要的,明天改改,如果你能提个 issue 甚至是 PR 就更好了😜
timqian
2019-01-24 23:01:17 +08:00
@xiaotuzi 链接是可以有的,但是你要多点点,有时候点到 link 的爸爸 element 就没链接了,是个手艺活。。。
imwalson
2019-01-25 00:05:07 +08:00
@falcon05 yql 以前我也用,现在已经黄了,关闭了
xiaotuzi
2019-01-25 00:48:47 +08:00
@timqian 可以转换下思路,直接获取软文的 link,然后输出来提供选择,那么就不会出现说点到其他 dom 了
timqian
2019-01-25 08:55:20 +08:00
@xiaotuzi 谢谢,也是一个新功能的方向
Cbdy
2019-01-25 09:07:16 +08:00
很遗憾,随便输入一个我正在访问的网站:Access Denied
https://www.nike.com/cn/zh_cn/
solobat
2019-01-25 11:07:19 +08:00
感觉 GraphQL 的方式更方便呢
https://github.com/dinubs/coolqlcool

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

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

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

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

© 2021 V2EX