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

2020-05-25 11:27:24 +08:00
 tddxx

我们公司现有门户网站是采用的 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 直接转发到这个端口,不打包,直接运行项目,这样爬虫是否可以爬取到内容?

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

prerender-spa-plugin 消耗资源大,可以尝试在本地构建,构建成功后,上传到服务器。不过我之前采用 prerender-spa-plugin,发现百度并不理睬我的博客,Google 倒是收录了,可能博客太烂了,嘿嘿。
tddxx
2020-05-25 14:32:05 +08:00
@poisedflw 有没有具体的现有项目接入 ssr 的 demo
tddxx
2020-05-25 14:33:02 +08:00
@seki 也就是说 html+ajax 异步获取爬虫也获取不了,必须要是模板引擎类的,直接返回静态页面
tddxx
2020-05-25 14:33:23 +08:00
@ArtIsPatrick 为了方便就采用了 vue
seki
2020-05-25 14:43:31 +08:00
是的,不如你就改到 nuxt 吧,把 ajax 请求从原来的地方挪动到 nuxt 的专门 api 就行。用 nuxt 甚至可以把网站做成静态的
red2dog
2020-05-25 14:51:20 +08:00
成本高吗,vue 转 nuxt 改造,还有 react 转 next 改造我都做过。不是只需要改请求层和路由层吗。
问题是你们既然需要 seo,那为什么最初的技术选型搞成客户端渲染呢。
red2dog
2020-05-25 14:53:32 +08:00
在我看来,成本高只有客户端渲染转 pug 或者 EJS 这样的改造。
crazybinggan
2020-05-25 14:59:59 +08:00
@HarryQu 你这么问还真没关注过...这边也只是简单针对特定搜索引擎爬虫 agent 去分流

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

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

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

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

© 2021 V2EX