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的模块写法入门(实例代码)
Mar 07 NodeJs
windows系统下简单nodejs安装及环境配置
Jan 08 NodeJs
nodejs读取memcache示例分享
Jan 02 NodeJs
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
Sep 29 NodeJs
NodeJs实现定时任务的示例代码
Dec 05 NodeJs
nodejs实现连接mongodb数据库的方法示例
Mar 15 NodeJs
nodejs用gulp管理前端文件方法
Jun 24 NodeJs
nodejs实现一个word文档解析器思路详解
Aug 14 NodeJs
基于Nodejs的Tcp封包和解包的理解
Sep 19 NodeJs
nodejs 使用http进行post或get请求的实例(携带cookie)
Jan 03 NodeJs
NodeJS实现一个聊天室功能
Nov 25 NodeJs
分享node.js实现简单登录注册的具体代码
Apr 26 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
如何使用PHP批量去除文件UTF8 BOM信息
2013/08/05 PHP
详解PHP的Yii框架中的Controller控制器
2016/03/29 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
thinkphp框架表单数组实现图片批量上传功能示例
2020/04/04 PHP
用YUI做了个标签浏览效果
2007/02/20 Javascript
JQuery select(下拉框)操作方法汇总
2015/04/15 Javascript
Angular中$compile源码分析
2016/01/28 Javascript
easyui validatebox验证
2016/04/29 Javascript
JavaScript的Backbone.js框架入门学习指引
2016/05/07 Javascript
bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
2020/11/30 Javascript
微信小程序  checkbox组件详解及简单实例
2017/01/10 Javascript
vscode 开发Vue项目的方法步骤
2018/11/25 Javascript
qrcode生成二维码微信长按无法识别问题的解决
2019/04/04 Javascript
Vue.js递归组件实现组织架构树和选人功能案例分析
2019/07/03 Javascript
javascript利用键盘控制小方块的移动
2020/04/20 Javascript
JavaScript实现世界各地时间显示
2020/09/07 Javascript
[01:03:36]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第二场 1月26日
2021/03/11 DOTA
Python利用heapq实现一个优先级队列的方法
2019/02/03 Python
python爬虫之验证码篇3-滑动验证码识别技术
2019/04/11 Python
Python日志无延迟实时写入的示例
2019/07/11 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
2019/10/23 Python
Python利用matplotlib绘制约数个数统计图示例
2019/11/26 Python
python利用google翻译方法实例(翻译字幕文件)
2020/09/21 Python
Python调用REST API接口的几种方式汇总
2020/10/19 Python
45个非常奇妙的CSS3 特性应用示例
2012/01/01 HTML / CSS
CSS3实现文字波浪线效果示例代码
2016/11/20 HTML / CSS
HTML5头部标签的一些常用信息小结
2016/10/23 HTML / CSS
英国花园药房: The Garden Pharmacy
2017/12/28 全球购物
Vrbo西班牙:预订您的度假公寓(公寓、乡村房屋…)
2020/04/27 全球购物
SQL里面如何插入自动增长序列号字段
2012/03/29 面试题
写给老师的表扬信
2014/01/21 职场文书
求职简历自我评价范例
2014/03/12 职场文书
2015年信息中心工作总结
2015/05/25 职场文书
助学金申请书该怎么写?
2019/07/16 职场文书
《工作是最好的修行》读后感3篇
2019/12/13 职场文书
Python帮你解决手机qq微信内存占用太多问题
2022/02/15 Python