V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
tddxx
V2EX  ›  问与答

有关于前后端项目的理解,有些不明白之处

  •  
  •   tddxx · 2020-05-25 11:27:24 +08:00 · 1441 次点击
    这是一个创建于 1426 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们公司现有门户网站是采用的 vue.js+java,在部署的时候通过将 vue 项目打包出静态文件( npm run build ),放到 nginx 中然后通过 nginx 访问页面。虽然可行,但碰到了一个致命的问题——seo 优化,这样打包出来的 html 页面都是利用 js 获取页面,导致百度爬虫什么也爬不出来。

    在网上看了很多案例,尝试了很多方法但是效果都不太理想: 1.利用 nuxt.js 改造现有项目,但是项目已经成型,花费成本太高 2.预渲染 prerender-spa-plugin,这种方法我们也有尝试,但是发现对服务器资源消耗过大 3.淘宝的 node 中间层处理方案,将 html,js.css 放到 node 容器中,好像对我们现有项目也帮助不大。

    今天突然有了个想法,我可不可以直接在服务器端 npm run dev 运行开发环境,通过 nginx 直接转发到这个端口,不打包,直接运行项目,这样爬虫是否可以爬取到内容?

    12 条回复    2020-05-25 14:59:59 +08:00
    poisedflw
        1
    poisedflw  
       2020-05-25 12:03:13 +08:00
    要想 SEO,就老老实实的用 SSR 吧,用官方推荐的 vue-server-renderer,成本并不大。
    crazybinggan
        2
    crazybinggan  
       2020-05-25 12:07:01 +08:00
    说说我的方法,专门针对爬虫搞一套,样式、JS 都不用,就是路由管理比较蛋疼,好处是真特么方便、爽~
    seki
        3
    seki  
       2020-05-25 12:08:00 +08:00
    不能
    seo 的问题是这些内容都是 js 加载之后渲染在页面里面的,而爬虫没有办法从 html 读到
    用 dev server 也是一样的
    ArtIsPatrick
        4
    ArtIsPatrick  
       2020-05-25 13:02:25 +08:00 via iPhone
    既然是门户网站设计之初就应该考虑到 SEO 的问题呀
    HarryQu
        5
    HarryQu  
       2020-05-25 13:16:37 +08:00
    @crazybinggan 你的方案可行吗? 我之前查询了这个方案,有的人说:爬虫会伪装成正常 ip 来爬取数据,如果获取内容不一致,会被判断为作弊。

    prerender-spa-plugin 消耗资源大,可以尝试在本地构建,构建成功后,上传到服务器。不过我之前采用 prerender-spa-plugin,发现百度并不理睬我的博客,Google 倒是收录了,可能博客太烂了,嘿嘿。
    tddxx
        6
    tddxx  
    OP
       2020-05-25 14:32:05 +08:00
    @poisedflw 有没有具体的现有项目接入 ssr 的 demo
    tddxx
        7
    tddxx  
    OP
       2020-05-25 14:33:02 +08:00
    @seki 也就是说 html+ajax 异步获取爬虫也获取不了,必须要是模板引擎类的,直接返回静态页面
    tddxx
        8
    tddxx  
    OP
       2020-05-25 14:33:23 +08:00
    @ArtIsPatrick 为了方便就采用了 vue
    seki
        9
    seki  
       2020-05-25 14:43:31 +08:00
    是的,不如你就改到 nuxt 吧,把 ajax 请求从原来的地方挪动到 nuxt 的专门 api 就行。用 nuxt 甚至可以把网站做成静态的
    red2dog
        10
    red2dog  
       2020-05-25 14:51:20 +08:00
    成本高吗,vue 转 nuxt 改造,还有 react 转 next 改造我都做过。不是只需要改请求层和路由层吗。
    问题是你们既然需要 seo,那为什么最初的技术选型搞成客户端渲染呢。
    red2dog
        11
    red2dog  
       2020-05-25 14:53:32 +08:00
    在我看来,成本高只有客户端渲染转 pug 或者 EJS 这样的改造。
    crazybinggan
        12
    crazybinggan  
       2020-05-25 14:59:59 +08:00
    @HarryQu 你这么问还真没关注过...这边也只是简单针对特定搜索引擎爬虫 agent 去分流
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2758 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 15:13 · PVG 23:13 · LAX 08:13 · JFK 11:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.