如何使AJAX网站可抓取?

时间:2016-03-13 17:22:12

标签: javascript jquery ajax html5

以下网站是使用history.pushState()的可抓取AJAX网站(HTML5 + CSS3 + AJAX)的一个很好的例子:

http://html5.gingerhost.com/

(背景见https://moz.com/blog/create-crawlable-link-friendly-ajax-websites-using-pushstate

但是,本网站假定动态内容可以在页面加载时呈现给服务器端。例如,如果您直接登陆http://html5.gingerhost.com/seattle,则与西雅图相关的内容不会通过AJAX加载,它已经在页面中。

我们假设内容只能通过AJAX调用加载。如何使这样的网站可抓取?

我的具体目标是让这个网站可以抓取: http://code-exercises.com/programming/

目前,所有编程练习都是通过AJAX加载的。我想编程/ easy / exercise-number-one。

我的网站由一个提供静态内容的NGINX实例提供服务,并将所有AJAX请求转发给Tomcat实例。

2 个答案:

答案 0 :(得分:1)

选项1:Easy One,使用prerender.io

选项2:在您的应用构建过程中包含一个Phantom.js来制作您网页的静态版本

选项3:如果您使用Angular,则可以迁移到angular2或其他具有服务器端渲染的框架

答案 1 :(得分:0)

了解如何使角度应用可抓取。

基本上,您必须拥有一个已加载数据的页面缓存版本,该版本将提供给网络抓取工具。

https://prerender.io/这是一个例子。