nodejs實(shí)現(xiàn)獲取某寶商品分類
閑來(lái)無(wú)事,研究下電商網(wǎng)站,正好朋友在開(kāi)某寶店,看到琳瑯滿目的商品分類,見(jiàn)獵心喜。于是稍微研究了一下。
商品分類獲取全由AJAX完成,且因?yàn)樾枰卿?,我閑麻煩,就采取了最簡(jiǎn)單的辦法,進(jìn)入后臺(tái)直接打開(kāi)控制臺(tái),把代碼粘進(jìn)去運(yùn)行,嘿嘿,所有分類都跑到CAT.data中去了。
菜鳥(niǎo)練手,求指點(diǎn)。
var CAT = { //[{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(){ var url = CAT.url(), post_data = 'path=all'; CAT.ajax(url, post_data, CAT.first_r); }, first_r: function(data){ var rs = data[0]['data'], first_l, first_d, i, j, second_id, second_d, func; for(i=0;i<rs.length; i++){ //保存一級(jí)分類 first_d = rs[i]['data']; first_l = []; for(j=0; j<first_d.length; j++){ //保存二級(jí)分類同時(shí)查詢?nèi)?jí)分類,并提供存儲(chǔ)數(shù)據(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){ return function(data){ if(data.length<1){ return } var rs = 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){ var xhr = new XMLHttpRequest(), 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); }else if(xhr.readyState==4 && (!xhr.status==200)){ console.log('Ajax Return Error!'); } } } }; CAT.init();
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
相關(guān)文章
在node.js中怎么屏蔽掉favicon.ico的請(qǐng)求
這篇文章主要介紹了在node.js中怎么屏蔽掉favicon.ico的請(qǐng)求,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03Node.js實(shí)現(xiàn)數(shù)據(jù)推送
這篇文章主要為大家詳細(xì)介紹了Node.js實(shí)現(xiàn)數(shù)據(jù)推送的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-04-04搭建基于express框架運(yùn)行環(huán)境的方法步驟
Express提供了一個(gè)輕量級(jí)模塊,把Node.js的http模塊功能封裝在一個(gè)簡(jiǎn)單易用的接口中,這篇文章主要介紹了搭建基于express框架運(yùn)行環(huán)境的方法步驟,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11Node.js之網(wǎng)絡(luò)通訊模塊實(shí)現(xiàn)淺析
本篇文章主要介紹了Node.js之網(wǎng)絡(luò)通訊模塊實(shí)現(xiàn)淺析,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-04-04Node Mongoose用法詳解【Mongoose使用、Schema、對(duì)象、model文檔等】
這篇文章主要介紹了Node Mongoose用法,結(jié)合實(shí)例形式分析了Mongoose使用、Schema、對(duì)象、model文檔等基本原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-05-05