我的前端用到angularjs,服务器用到nginx。
大体流程:
nginx服务器检测到爬虫访问,跳转到专门的url,此url是angularjs已经渲染过后的页面。非常的简单。
1.首先是angularjs的渲染问题
angular添加一个模块‘seo’,引入文件 angular-seo.js文件(附件中有)。
<script src="@routes.Assets.at("js/app/angular-seo.js")"></script>
angular.module('app', ['ng', 'seo']);
然后你可以在每个controller中,觉得页面差不多已经创建好之后调用 $scope.htmlReady()(就是数据请求完成之后,随便你放哪里)。
然后用phantomjs进行页面的渲染,安装完成之后(自己百度怎么安装,很简单),用下面代码进行调用。
phantomjs --disk-cache=no /path/xxxxxx...../angular-seo-server.js 9001 http://localhost:8080
这个就是开启9001端口,调用angula