爱意满满的作品展示区。
timqian
10.03D

CloudQuery: 把任意网站变成 API

  •  2
     
  •   timqian ·
    timqian · Jan 24, 2019 · 8440 views
    This topic created in 2845 days ago, the information mentioned may be changed or developed.

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

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

    26 replies  •  2019-12-02 22:30:36 +08:00
    stone666
    stone666
    Jan 24, 2019❤️1
    1
    那? 12306 ?
    timqian
    timqian
    OP
    Jan 24, 2019 via Android
    2
    @stone666 啥意思🤔
    kkkkkrua
    kkkkkrua
    Jan 24, 2019
    3
    12306 出来的是 html #1
    natforum
    natforum
    Jan 24, 2019
    5
    方便制作 app ?
    mingff258
    mingff258
    Jan 24, 2019
    6
    不错,最近正好有这方面的需求,收藏了
    GG668v26Fd55CP5W
    GG668v26Fd55CP5W
    Jan 24, 2019 via iPhone
    7
    雅虎有个 YQL 的东东,类似,不知道现在还能用吗?
    xomix
    xomix
    Jan 24, 2019❤️1
    8
    这个是不是可以缩写成
    PaaA
    web Page as a web Api
    d5
    d5
    Jan 24, 2019❤️1
    9
    太酷了,果断 star
    Tink
    Tink
    Jan 24, 2019 via iPhone❤️1
    10
    6 啊!
    O3YwA1ENkb7i35XJ
    O3YwA1ENkb7i35XJ
    Jan 24, 2019
    11
    反馈个 bug

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

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

    即这个数据串了...
    O3YwA1ENkb7i35XJ
    O3YwA1ENkb7i35XJ
    Jan 24, 2019
    12
    另外没有对传入的 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
    xiaotuzi
    Jan 24, 2019 via iPhone
    13
    也就爬取链接和 dom,没有对应的链接…
    timqian
    timqian
    OP
    Jan 24, 2019
    14
    @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
    timqian
    OP
    Jan 24, 2019
    15
    @xiaotuzi 链接是可以有的,但是你要多点点,有时候点到 link 的爸爸 element 就没链接了,是个手艺活。。。
    imwalson
    imwalson
    Jan 25, 2019 via Android
    16
    @falcon05 yql 以前我也用,现在已经黄了,关闭了
    xiaotuzi
    xiaotuzi
    Jan 25, 2019 via iPhone
    17
    @timqian 可以转换下思路,直接获取软文的 link,然后输出来提供选择,那么就不会出现说点到其他 dom 了
    timqian
    timqian
    OP
    Jan 25, 2019 via Android
    18
    @xiaotuzi 谢谢,也是一个新功能的方向
    Cbdy
    Cbdy
    Jan 25, 2019
    19
    很遗憾,随便输入一个我正在访问的网站:Access Denied
    https://www.nike.com/cn/zh_cn/
    solobat
    solobat
    Jan 25, 2019❤️1
    20
    感觉 GraphQL 的方式更方便呢
    https://github.com/dinubs/coolqlcool
    huruwo
    huruwo
    Jan 25, 2019
    21
    我输入一个网站 转了半天没出来东西
    GitHubDaily
    GitHubDaily
    Jan 25, 2019❤️1
    22
    看着不错,给推荐到微博上了

    https://weibo.com/5722964389/HdyIz2DSx
    timqian
    timqian
    OP
    Jan 25, 2019 via Android
    23
    @huruwo
    @Cbdy 感谢反馈,现在这种 html 放 iframe 里的方式是会有些网站,会持续改进,并且之后会有浏览器插件形式,就不会有这个问题了
    @solobat 这个看了眼文档试了下,没太搞明白咋用。这个人做的另一个 website to json https://github.com/dinubs/jam-api 主题功能和 cloudquery 挺像,cloudquery 比他多了选择页面,他这个 deploy to now 可以学习下,给用户多种部署选择,感谢
    jisibencom
    jisibencom
    Jan 25, 2019 via Android
    24
    有点以前 rss 烧录的感觉
    mrcode
    mrcode
    Jan 26, 2019
    25
    令人耳目一新,要是支持预先设置 token 就好了,不然像 V2EX 某些节点没有 token 访问不了
    justin2018
    justin2018
    Dec 2, 2019
    26
    nice 多谢~
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   590 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 54ms · UTC 19:13 · PVG 03:13 · LAX 11:13 · JFK 14:13
    ♥ Do have faith in what you're doing.