V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhandi
V2EX  ›  程序员

打算做一个 SPA 在线渲染服务,类似 prerender.io

  •  
  •   zhandi · 2018-06-11 11:47:57 +08:00 · 2020 次点击
    这是一个创建于 2363 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前在 v2 问了一下 SPA 的搜索引擎收录问题,同时也自己进行了测试。 发现百度蜘蛛和谷歌并不能很好的收录单页(spa)应用。 自己也尝试用过 ssr 的方案,ssr 方案的问题有几个: 1.需要改动原有代码 2.服务器需要跑 node 3.负载比较高

    在谷歌相关解决方案的时候,发现国外有不少做 SPA 渲染服务的 原理是这样的: 在 http 请求来的时候,判断 ua,如果是爬虫,就反代到 spa 渲染服务接口,spa 渲染服务会使用无头浏览器进行访问,并输出渲染后的页面。

    看国内并没有提供类似服务的,想自己搞一个。 (目前手里有资源能扛较高的并发)

    V 油给点建议?

    16 条回复    2018-06-12 10:24:31 +08:00
    wswuai
        1
    wswuai  
       2018-06-11 11:54:28 +08:00
    Splash / phantomjs 了解一下
    zhandi
        2
    zhandi  
    OP
       2018-06-11 11:57:35 +08:00
    我打算做的服务就是用 phantomjs 作为无头浏览器进行渲染,只是把它服务化,让生产服务器不再承担这个任务,由第三方去做
    xylitolLin
        3
    xylitolLin  
       2018-06-11 12:00:35 +08:00
    PhantomJS 的性能实在是... 我公司也用 PhantomJS 做专门的 SEO 的,现在都逐步重构为 SSR 了
    mdluo
        4
    mdluo  
       2018-06-11 12:00:41 +08:00 via iPhone   ❤️ 1
    Puppeteer as a service:
    https://pptraas.com
    zhandi
        5
    zhandi  
    OP
       2018-06-11 12:07:51 +08:00
    @xylitolLin 是的,PhantomJS 的性能确实...,但是 ssr 我感觉也不太好。所以我想做一个国内的 SPA 渲染服务,刚好手里有一批资源可以用来跑 PhantomJS。
    zhandi
        6
    zhandi  
    OP
       2018-06-11 12:09:23 +08:00
    @mdluo 是的,我想做的就是这个,再加入页面缓存之类的。
    Cynic222
        7
    Cynic222  
       2018-06-11 12:10:10 +08:00 via iPhone
    现在都转到 puppeteer 了
    zhandi
        8
    zhandi  
    OP
       2018-06-11 12:19:39 +08:00
    @Cynic222 puppeteer 也有测试,可能是因为肩负太多其他任务,也或者是我优化不到位,puppeteer 渲染速度还没 PhantomJS 快。
    mdluo
        9
    mdluo  
       2018-06-11 12:26:52 +08:00
    @zhandi #6 渲染静态网页技术上一点难度都没有,但是难在怎么把这个东西包装成 SaaS 平台并且运营起来并且拉到客户来用并且愿意付钱,这和仅仅开发几个功能就完全是两个概念了
    tingyunsay
        10
    tingyunsay  
       2018-06-11 12:47:59 +08:00
    楼主看看这个有木有你提到的这种服务: https://scrapinghub.com/ ,而且我觉得首先你要做成云服务,别人把 url 丢到你这边渲染,再返回,传输的时间就消耗有点多;而且这个需求一般是研发人员会在意的,如果是这样研发基本都能自己搭建集群,splash / puppeteer/ phantomjs 这种类似,那客户群体都有哪些呢?;还有一点,如果你全部用自己的机器去渲染,如果遇上 ip 之类的反爬(你这边也需要解决吧),对于用户是不是还需要另外收费呢?提点自己的想法,楼主加油~~
    caviar
        11
    caviar  
       2018-06-11 12:56:56 +08:00
    zhandi
        12
    zhandi  
    OP
       2018-06-11 14:18:40 +08:00
    @mdluo
    @tingyunsay
    是的,确实技术壁垒不高,主要问题在于如何商业化,能有资金回流解决生存问题。
    zhandi
        13
    zhandi  
    OP
       2018-06-11 14:19:53 +08:00
    @caviar 是的,SaaS 的在线渲染服务,但是专注于 html 渲染,为 seo 助力
    yrj
        14
    yrj  
       2018-06-11 16:51:58 +08:00 via iPad
    @zhandi 我之前也用 Puppeteer 做了一個,感覺也是沒有 phantomjs 快,但是可以解析 vue 等 mvvm 框架的網頁。
    zhandi
        15
    zhandi  
    OP
       2018-06-11 21:23:55 +08:00
    @yrj Puppeteer 和 phantomjs 都没问题,只是 phantomjs 好像对 es6 支持不如 Puppeteer 好
    wzhndd2
        16
    wzhndd2  
       2018-06-12 10:24:31 +08:00
    headless 了解一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2095 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:36 · PVG 08:36 · LAX 16:36 · JFK 19:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.