CloudQuery: 把任意网站变成 API - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
timqian
10.02D
V2EX    分享创造

CloudQuery: 把任意网站变成 API

  •  2
     
  •   timqian
    timqian 2019 年 1 月 24 日 7708 次点击
    这是一个创建于 2586 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    https://weibo.com/5722964389/HdyIz2DSx
    timqian
        23
    timqian  
    OP
       2019 年 1 月 25 日 via Android
    @huruwo
    @Cbdy 感谢反馈,现在这种 html 放 iframe 里的方式是会有些网站,会持续改进,并且之后会有浏览器插件形式,就不会有这个问题了
    @solobat 这个看了眼文档试了下,没太搞明白咋用。这个人做的另一个 website to json https://github.com/dinubsjam-api 主题功能和 cloudquery 挺像,cloudquery 比他多了选择页面,他这个 deploy to now 可以学习下,给用户多种部署选择,感谢
    jisibencom
        24
    jisibencom  
       2019 年 1 月 25 日 via Android
    有点以前 rss 烧录的感觉
    mrcode
        25
    mrcode  
       2019 年 1 月 26 日
    令人耳目一新,要是支持预先设置 token 就好了,不然像 V2EX 某些节点没有 token 访问不了
    justin2018
        26
    justin2018  
       2019 年 12 月 2 日
    nice 多谢~
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2195 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 14:06 PVG 22:06 LAX 06:06 JFK 09:06
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86