nodejs实现获取某宝商品分类


Posted in NodeJs onMay 28, 2015

闲来无事,研究下电商网站,正好朋友在开某宝店,看到琳琅满目的商品分类,见猎心喜。于是稍微研究了一下。

商品分类获取全由AJAX完成,且因为需要登录,我闲麻烦,就采取了最简单的办法,进入后台直接打开控制台,把代码粘进去运行,嘿嘿,所有分类都跑到CAT.data中去了。

菜鸟练手,求指点。

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++){
      //保存一级分类
      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){
    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();

以上所述就是本文的全部内容了,希望大家能够喜欢。

NodeJs 相关文章推荐
提高NodeJS中SSL服务的性能
Jul 15 NodeJs
nodejs中实现阻塞实例
Mar 24 NodeJs
Nodejs如何搭建Web服务器
Mar 28 NodeJs
详解NodeJS框架express的路径映射(路由)功能及控制
Mar 24 NodeJs
使用 NodeJS+Express 开发服务端的简单介绍
Apr 07 NodeJs
NodeJs模拟登陆正方教务
Apr 28 NodeJs
深入理解nodejs中Express的中间件
May 19 NodeJs
手把手教你把nodejs部署到linux上跑出hello world
Jun 19 NodeJs
nodejs后台集成ueditor富文本编辑器的实例
Jul 11 NodeJs
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
Sep 19 NodeJs
NodeJs通过async/await处理异步的方法
Oct 09 NodeJs
Nodejs中怎么实现函数的串行执行
Mar 02 NodeJs
Nodejs实现批量下载妹纸图
May 28 #NodeJs
ubuntu下安装nodejs以及升级的办法
May 08 #NodeJs
浅谈NodeJS中require路径问题
May 07 #NodeJs
NodeJs中的VM模块详解
May 06 #NodeJs
nodejs简单实现中英文翻译
May 04 #NodeJs
nodejs调用cmd命令实现复制目录
May 04 #NodeJs
nodejs通过phantomjs实现下载网页
May 04 #NodeJs
You might like
允许phpmyadmin空密码登录的配置方法
2011/05/29 PHP
PHP实现的各类hash算法长度及性能测试实例
2017/08/27 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
JavaScript 对任意元素,自定义右键菜单的实现方法
2013/05/08 Javascript
IE8中使用javascript动态加载CSS的解决方法
2014/06/17 Javascript
js实现图片切换(动画版)
2016/12/25 Javascript
nodejs基础知识
2017/02/03 NodeJs
Jquery鼠标放上去显示全名的实现方法
2017/02/06 Javascript
基于JavaScript实现选项卡效果
2017/07/21 Javascript
js中this的指向问题归纳总结
2018/11/28 Javascript
基于Fixed定位的框选功能的实现代码
2019/05/13 Javascript
node.js express框架简介与实现
2019/07/23 Javascript
JavaScript仿京东秒杀倒计时
2020/03/17 Javascript
微信小程序学习总结(五)常见问题实例小结
2020/06/04 Javascript
Vue js with语句原理及用法解析
2020/09/03 Javascript
Python实现全角半角转换的方法
2014/08/18 Python
Python中的自定义函数学习笔记
2014/09/23 Python
python批量修改图片大小的方法
2018/07/24 Python
Python3.5集合及其常见运算实例详解
2019/05/01 Python
Tensorflow获取张量Tensor的具体维数实例
2020/01/19 Python
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
HTML5 视频播放(video),JavaScript控制视频的实例代码
2018/10/08 HTML / CSS
canvas探照灯效果的示例代码
2018/11/30 HTML / CSS
Ajax主要包含了哪些技术
2014/06/12 面试题
西式婚礼证婚词
2014/01/12 职场文书
高中家长寄语
2014/04/02 职场文书
幼儿园小班评语大全
2014/04/17 职场文书
春季防火方案
2014/05/10 职场文书
见习报告的格式
2014/11/04 职场文书
2014年护士长工作总结
2014/11/11 职场文书
导游欢迎词范文
2015/01/23 职场文书
2016三严三实专题教育活动心得体会
2016/01/06 职场文书
小学生禁毒教育心得体会
2016/01/15 职场文书
Python控制台输出俄罗斯方块的方法实例
2021/04/17 Python
position:sticky 粘性定位的几种巧妙应用详解
2021/04/24 HTML / CSS
详解Redis复制原理
2021/06/04 Redis