1

我有一个使用 Ajax 的页面,我想让它可以被 SEO 抓取。检查谷歌的规范(https://developers.google.com/webmasters/ajax-crawling),它说需要使用“#!” 构建一个“漂亮的 url”,并为爬虫引擎构建一个 html 快照。那么如何在c#中创建html快照呢?

4

1 回答 1

1

虽然我还没有在生产中使用它,但我发现 PhantomJs(一个基于 webkit 的无头浏览器)完全可以胜任这项任务。我写了一篇关于这个主题的帖子。

在 DOM 完成加载和 Ajax 请求完成后,我只是复制整个 dom,Phantom 也是使用 JavaScript 编写的脚本,很容易将 DOM 内容获取为 HTML。

这不是 C# 特定的解决方案,但界面很简单,而且 PhantomJS 也可以在 Windows 上运行。每当我在 URL 中收到带有 escaped_fragment 的请求时,匹配的 MVC 路由会将 Crawler 重定向到缓存的快照。

于 2013-01-18T07:30:33.480 回答