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基本语法和类型
Feb 13 NodeJs
浅析Nodejs npm常用命令
Jun 14 NodeJs
NodeJS远程代码执行
Aug 28 NodeJs
NodeJS整合银联网关支付(DEMO)
Nov 09 NodeJs
Nodejs进阶:核心模块net入门学习与实例讲解
Nov 21 NodeJs
nodejs实现发出蜂鸣声音(系统报警声)的方法
Jan 18 NodeJs
Nodejs实现多房间简易聊天室功能
Jun 20 NodeJs
nodejs中解决异步嵌套循环和循环嵌套异步的问题
Jul 12 NodeJs
nodejs 最新版安装npm 的使用详解
Jan 18 NodeJs
nodeJS服务器的创建和重新启动的实现方法
May 12 NodeJs
独立部署小程序基于nodejs的服务器过程详解
Jun 24 NodeJs
nodejs各种姿势断点调试的方法
Jun 18 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
source.php查看源文件
2006/12/09 PHP
PHP 日志缩略名的创建函数代码
2010/05/26 PHP
PHP中array_map与array_column之间的关系分析
2014/08/19 PHP
简单介绍PHP的责任链编程模式
2015/08/11 PHP
CakePHP框架Session设置方法分析
2017/02/23 PHP
降低PHP Redis内存占用
2017/03/23 PHP
php 数据结构之链表队列
2017/10/17 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
json跟xml的对比分析
2008/06/10 Javascript
发一个自己用JS写的实用看图工具实现代码
2008/07/26 Javascript
javascript之可拖动的iframe效果代码
2008/08/01 Javascript
Javascript学习笔记4 Eval函数
2010/01/11 Javascript
js语法学习之判断一个对象是否为数组
2014/05/13 Javascript
document.write的几点使用心得
2014/05/14 Javascript
纯javascript实现图片延时加载方法
2015/08/21 Javascript
浅析四种常见的Javascript声明循环变量的书写方式
2015/10/14 Javascript
分享JavaScript监听全部Ajax请求事件的方法
2016/08/28 Javascript
Vue项目中ESlint规范示例代码
2019/07/04 Javascript
微信小程序 wx:for遍历循环使用实例解析
2019/09/09 Javascript
js+canvas实现刮刮奖功能
2020/09/13 Javascript
[01:11:28]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第一场 1月8日
2021/03/11 DOTA
python中查找excel某一列的重复数据 剔除之后打印
2013/02/10 Python
Python入门Anaconda和Pycharm的安装和配置详解
2019/07/16 Python
Django 反向生成url实例详解
2019/07/30 Python
如何通过命令行进入python
2020/07/06 Python
Python urlopen()参数代码示例解析
2020/12/10 Python
css3动画效果抖动解决方法
2018/09/03 HTML / CSS
Kathmandu美国网站:新西兰户外运动品牌
2019/03/23 全球购物
俄罗斯购买自行车网站:Vamvelosiped
2021/01/29 全球购物
教育学专业毕业生的自我鉴定
2013/11/26 职场文书
春季防火方案
2014/05/10 职场文书
安全生产月标语
2014/10/07 职场文书
2015关爱留守儿童工作总结
2014/12/12 职场文书
继承公证书格式
2015/01/26 职场文书
2015党建工作简报
2015/07/21 职场文书
读《教育心理学》心得体会
2016/01/22 职场文书