7

我正在阅读有关 ajax 抓取的谷歌规范;我理解了这个概念,但我需要更多说明:

我的网址都是这样的:

http://www.website.com/#!/eng/home
http://www.website.com/#!/eng/contacts
...

我必须在这些地址提供 html 快照:

http://www.website.com/?_escaped_fragment_=/eng/home
http://www.website.com/?_escaped_fragment_=/eng/contacts
...

这个对吗?或者我应该删除“escaped_fragment”网址中的“/”(例如http://www.website.com/?_escaped_fragment_=eng/home还是其他?)

我使用 phantomjs 生成 HTML 快照,但是哪一种是将这些快照提供给爬虫的最佳方式?使用节点js?使用 htaccess 重写规则?

4

2 回答 2

5

好的,既然我终于摆脱了这个,我想分享我找到的方式;

首先,必须在特定 URL 处将 HTML 快照提供给爬虫,其中

?_escaped_fragment_=

正在更换

#!

因此,如果您有:

http://www.website.com/#!/eng/home

您的服务器必须在以下位置提供快照:

http://www.website.com/?_escaped_fragment_=/eng/home

如果有人对我用来生成快照的方法感兴趣,我只需使用一个名为 judo 的节点模块(https://npmjs.org/package/judo);为了使用它,您需要在服务器上安装 phantomjs ( http://phantomjs.org/ ) 和 node ( http://nodejs.org/ );(有关如何在服务器上安装 phantomjs 的更多信息:How can I setup & run PhantomJS on Ubuntu?

安装完所有东西后,您只需要使用柔道(例如 judo.js)编写一个 js 文件(按照我链接的文档页面,您将在 5 分钟内准备好);将文件上传到服务器并使用节点执行以创建快照和站点地图;

在此之后,当他要求 ?_escaped_fragment_= URLs 时,您需要为 google 的爬虫提供 HTML 快照;我认为最简单的方法是通过 .htaccess 文件;特别是你只需要 3 行代码,在我的例子中是:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=/(.*)$
RewriteRule ^$ /seo/snapshots/%1\.html [L]

(因为在我的 judo.js 文件中创建了 /seo/snapshots 目录中的快照)

最后,您可以使用 google 网站管理员工具面板中的“fetch as google”选项检查一切是否正常;如果你都做对了,你会看到结果是 HTML 快照......

于 2013-11-02T00:56:28.370 回答
1

通常我不会通过建议付费服务来回答 SO 帖子,但在这种情况下,我认为你真的应该考虑使用 BromBone - http://www.emberjsseo.com

于 2013-10-30T20:34:48.647 回答