nodejs实现获取某宝商品分类
闲来无事,研究下电商网站,正好朋友在开某宝店,看到琳琅满目的商品分类,见猎心喜。于是稍微研究了一下。
商品分类获取全由AJAX完成,且因为需要登录,我闲麻烦,就采取了最简单的办法,进入后台直接打开控制台,把代码粘进去运行,嘿嘿,所有分类都跑到CAT.data中去了。
菜鸟练手,求指点。
varCAT={
//[{id:'',name:'',data:[{id:'',name:'',data:[{id:'',name:''}]},{},...]},{}...]
data:[],
url:function(){
return'http://upload.taobao.com/auction/json/reload_cats.htm?t='+Math.random();
},
init:function(){
varurl=CAT.url(),
post_data='path=all';
CAT.ajax(url,post_data,CAT.first_r);
},
first_r:function(data){
varrs=data[0]['data'],
first_l,first_d,i,j,second_id,second_d,func;
for(i=0;i<rs.length;i++){
//保存一级分类
first_d=rs[i]['data'];
first_l=[];
for(j=0;j<first_d.length;j++){
//保存二级分类同时查询三级分类,并提供存储数据的容器
second_id=first_d[j]['sid'];
second_d={
'id':first_d[j]['sid'],
'name':first_d[j]['name'],
'spell':first_d[j]['spell'],
'data':[]
};
first_l.push(second_d);
func=CAT.second_r(second_d['data']);
CAT.ajax(CAT.url(),'path=next&sid='+second_id,func);
}
CAT.data.push({
'id':rs[i]['id'],
'name':rs[i]['name'],
'data':first_l
})
}
},
second_r:function(container){
returnfunction(data){
if(data.length<1){
return
}
varrs=data[0]['data'],
i,j,here,third_d;
for(i=0;i<rs.length;i++){
third_d=rs[i]['data'];
for(j=0;j<third_d.length;j++){
here=third_d[j];
container.push({
'id':here['sid'],
'name':here['name'],
'spell':here['spell']
});
}
}
}
},
ajax:function(url,post_data,func){
varxhr=newXMLHttpRequest(),
result;
xhr.open('POST',url,true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send(post_data);
xhr.onreadystatechange=function(){
if(xhr.readyState==4&&xhr.status==200){
result=JSON.parse(xhr.responseText);
func(result);
}elseif(xhr.readyState==4&&(!xhr.status==200)){
console.log('AjaxReturnError!');
}
}
}
};
CAT.init();
以上所述就是本文的全部内容了,希望大家能够喜欢。