gpt4 book ai didi

angularjs - 使 Angular 可爬行 - 项目开始

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:27:28 25 4
gpt4 key购买 nike

在使用 angularJS 开发网站时,您是否需要在开始处理您的网站之前担心网络爬虫,或者您是否可以将其推迟到网站完成。

例如,我了解到 HTML 快照是一个很好的解决方案。如果您选择这样做,您是否能够在编写网站代码后实现它,或者您是否必须基于这种功能创建网站。

最佳答案

我认为在项目开始时考虑策略并在项目接近尾声时实现它是很好的。

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

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

...?_escaped_fragment_=/home

Google 或 Bing 何时会抓取页面

...#/home

参见谷歌官方 documentation了解详情。

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

...?_escaped_fragment_=:path

有不同的策略:

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

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

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

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

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

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

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

如果内容检索复杂,则很难处理,因为您需要复制代码(一个客户端呈现 Angular View ,一个服务器端为爬虫生成整个页面“等效”内容)。

我提到了 PhantomJS 解决方案,但是任何 headless (或者如果你能负担得起显示器则没有)浏览器都可以完成工作。你甚至可以想象能够在没有任何浏览器的情况下在服务器端呈现你的 View ,而只是在 NodeJS 服务器中运行你的 JS。


如果您要使用 HTML5 样式的 URL、散列或 hashbang URL,也请一开始就考虑一下。一旦内容被搜索引擎索引,这就很难改变。我建议 hashbang 风格,即使它可以被视为“丑陋”。*

关于angularjs - 使 Angular 可爬行 - 项目开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18771488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com