例如angular.js开发的站点,静态页面中的数据只是一些 {{}} 这样的字符,只有经过ajax请求并渲染后才有真实的数据。
{{}}
这种情况该如何处理?
你好像搞错了吧…{{}}是放在模板里的, ajax的请求回来就是数据。然后才用数据替换掉{{}}的定义(这是angularjs做的事情)。
关键就是要让爬虫可以执行 js。这个问题我也没有很好解…不如直接去爬 ajax 接口?
我是直接访问那个Ajax接口拿数据的。
用firebug测试ajax接口参数,爬虫时模拟ajax
@alsotang 可以用Greasemonkey写脚本在页面上自动点击, 但是这要把抓取的页面传递到浏览器,ajax获取的数据再传到后台,爬虫有点像代理
话说正确姿势是直接爬接口吧
爬接口,省时省电。。
显然直接爬接口
真希望有一种可以直接模拟浏览器行为的爬虫技术。
@think2011 phantomjs
@andyhu 我去,用phantomjs? 他处理每个搜索引擎的请求都是创建一个新的对象 不但耗费cpu还有内存。而且还不稳定,严重 情况下能让你的app直接crash。 你用过?你推荐这个?
@struCoder 模拟浏览器的话,不用这个有其他可行的解决方案吗?