我有一个使用Ajax的页面,我想让它可以抓取SEO。检查Google的规范(https://developers.google.com/webmasters/ajax-crawling),它说需要使用“#!”构建一个“漂亮的URL”,并为爬虫引擎构建一个html快照。那么如何在c#中创建html快照?
答案 0 :(得分:1)
虽然我还没有在生产中使用它,但我发现PhantomJs(基于webkit的无头浏览器)完全可以完成任务。我写了Post on the subject 。
在DOM完成加载并完成Ajax请求后,我只复制整个dom,Phantom也使用JavaScript编写脚本,很容易将DOM内容作为HTML获取。
这不是C#特定的解决方案,但界面很简单,PhantomJS也可以在Windows上运行。每当我通过URL中的escaped_fragment获取请求时,匹配的MVC路由会将Crawler重定向到缓存的快照。