【发布时间】:2013-01-18 07:13:06
【问题描述】:
我有一个使用 Ajax 的页面,我想让它可以被 SEO 抓取。检查谷歌的规范(https://developers.google.com/webmasters/ajax-crawling),它说需要使用“#!”构建一个“漂亮的 url”,并为爬虫引擎构建一个 html 快照。那么如何在c#中创建html快照呢?
【问题讨论】:
我有一个使用 Ajax 的页面,我想让它可以被 SEO 抓取。检查谷歌的规范(https://developers.google.com/webmasters/ajax-crawling),它说需要使用“#!”构建一个“漂亮的 url”,并为爬虫引擎构建一个 html 快照。那么如何在c#中创建html快照呢?
【问题讨论】:
虽然我还没有在生产中使用它,但我发现 PhantomJs(一个基于 webkit 的无头浏览器)完全可以胜任这项任务。我写了一个Post on the subject 。
DOM 加载完成,Ajax 请求完成后,我只是复制整个 dom,Phantom 也是使用 JavaScript 编写的,很容易将 DOM 内容获取为 HTML。
这不是 C# 特定的解决方案,但界面很简单,PhantomJS 也可以在 windows 上运行。每当我在 URL 中收到带有 escaped_fragment 的请求时,匹配的 MVC 路由会将 Crawler 重定向到缓存的快照。
【讨论】: