你应该完全相信现在搜索引擎的能力,因为它们就是千方百计抓取更多内容。
http://blog.sina.com.cn/s/blog_6b61ed4b0100lfu1.html http://www.pythontab.com/html/2014/pythonweb_0311/712.html
上面是比较早的资料,我从公司后端就听说现在百度已经能从内存中抓取内容。不要说百度,就是一般的电商公司,为了让自己商场的产品比其他商场的低一点, 他们都会设法通过爬虫把人家的网页(就是那种是纯JS写的,价格是用图片展示出来的)抓下去,通过机器学习得到它们需要的东西。
如果你还不放心,还可以使用如下策略:
方案1,你可以在服务器端运行一个浏览器实例来执行你的应用里的Javascript,然后从DOM中卸下HTML(使用PlantomJS或者WebLoop)。 或者你可以创建一个服务端生成的专供爬虫的替代性HTML版本。
前者, 需要你为每一个页面加载建立一个headless浏览器(或者tab),比起直接产出HTML,这样会花费很多的时间和系统资源。 取决于你使用的框架,需要不少精力来决定什么时候页面已经准备好了。 你可以缓存页面,但是如果页面经常改变,那么缓存只能起到非常有限的优化作用,而且会增大复杂度。
后者(创建一个替代性的服务器端站点)对简单站点而言足够了
方案2,比如google家的用 !#映射一套URL输出内容 比如在页面上输出内容,再用js获取渲染,配合后台,不用hash而使用history.pushState来改变URL,保证每个URL访问的时候页面输出对应的内容神马的。
方案3,facebook的quickling 点我。