使角度可爬行 - 项目的开始

Ric*_*son 7 seo angularjs

在angularJS中开发网站时,您在开始使用网站之前必须担心网页抓取工具,或者可以在网站完成之前将其推迟.

我已经读过HTML快照是一个很好的解决方案.如果您选择这样做,您是否能够在编码网站后实施它,或者您是否必须基于此类功能创建网站.

ovm*_*mjm 2

我认为最好在项目开始时考虑策略并在项目接近结束时实施它。

\n\n

我们在我工作的公司遇到了这个问题。

\n\n

在所有情况下,您都需要回答对端点的 GET 请求,例如

\n\n
...?_escaped_fragment_=/home\n
Run Code Online (Sandbox Code Playgroud)\n\n

何时(例如 Google 或 Bing)会抓取该页面

\n\n
...#/home\n
Run Code Online (Sandbox Code Playgroud)\n\n

详情请参阅 Google 官方文档。

\n\n

问题是你将如何填写资源的内容

\n\n
...?_escaped_fragment_=:path\n
Run Code Online (Sandbox Code Playgroud)\n\n

有不同的策略:

\n\n

每次爬虫请求资源时,使用 PhantomJS 生成动态快照

\n\n

这包括在运行时生成 PhantomJS 进程,将生成的 HTML 页面的内容重定向到输出并将其发送回爬虫。

\n\n

我认为如果您的网站有很多动态可抓取内容,这是最横向和透明的解决方案。

\n\n

在构建时或点击网站 CMS 的保存按钮时使用 PhantomJS 生成静态快照

\n\n

如果可抓取内容的内容从不改变或只是不时改变,那么这很好。

\n\n

在开发时或点击网站 CMS 的保存按钮时生成静态 \xc2\xab 等效的 \xc2\xbb 内容文件

\n\n

这是一个非常便宜的解决方案,因为它不涉及 PhantomJS。如果内容简单并且您可以轻松编写或从数据库生成它,那么这很好。

\n\n

如果内容检索起来很复杂,则很难处理,因为您需要复制代码(一个客户端渲染 Angular 视图,一个服务器端为爬虫生成整个页面 \xc2\xab 等效的 \xc2\xbb 内容) 。

\n\n

我提到了 PhantomJS 解决方案,但是任何无头(或者如果你能负担得起显示器的话就没有)浏览器都可以完成这项工作。您甚至可以想象能够在没有任何浏览器的情况下在服务器端渲染视图,而只需在 NodeJS 服务器中运行 JS。

\n\n
\n\n

另外,一开始还要考虑是否要使用 HTML5 样式 URL、哈希或 hashbang URL。一旦内容被搜索引擎索引,这一点就很难改变。我建议 hashbang 风格,即使它可以被视为 \xc2\xab 丑陋的 \xc2\xbb。*

\n