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获取本机内网和外网ip地址的实现代码
Jun 01 NodeJs
NodeJS中利用Promise来封装异步函数
Feb 25 NodeJs
NodeJS仿WebApi路由示例
Feb 28 NodeJs
nodejs multer实现文件上传与下载
May 10 NodeJs
配置nodejs环境的方法
May 13 NodeJs
详解nodejs的express如何自动生成项目框架
Jul 12 NodeJs
nodejs发送http请求时遇到404长时间未响应的解决方法
Dec 10 NodeJs
Nodejs模块载入运行原理
Feb 23 NodeJs
NodeJs生成sitemap站点地图的方法示例
Jun 11 NodeJs
Nodejs监控事件循环异常示例详解
Sep 22 NodeJs
nodejs实现UDP组播示例方法
Nov 04 NodeJs
Nodejs + Websocket 指定发送及群聊的实现
Jan 09 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 xml留言板 xml存储数据的简单例子
2009/08/24 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
2013/04/26 PHP
PHP 实现从数据库导出到.csv文件方法
2017/07/06 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
简单的js分页脚本
2009/05/21 Javascript
js图片预加载示例
2014/04/30 Javascript
js使用split函数按照多个字符对字符串进行分割的方法
2015/03/20 Javascript
遮罩层点击按钮弹出并且具有拖动和关闭效果(两种方法)
2015/08/20 Javascript
jquery实现select选择框内容左右移动代码分享
2015/11/21 Javascript
javascript编程异常处理实例小结
2015/11/30 Javascript
js判断数组key是否存在(不用循环)的简单实例
2016/08/03 Javascript
JS基于递归实现倒计时效果的方法
2016/11/26 Javascript
Jquery鼠标放上去显示全名的实现方法
2017/02/06 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
2019/05/30 Javascript
js面试题之异步问题的深入理解
2020/09/20 Javascript
Python通过递归遍历出集合中所有元素的方法
2015/02/25 Python
python编程实现12306的一个小爬虫实例
2017/12/27 Python
Pyqt QImage 与 np array 转换方法
2019/06/27 Python
python多进程重复加载的解决方式
2019/12/13 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
如何写python的配置文件
2020/06/07 Python
Windows下Sqlmap环境安装教程详解
2020/08/04 Python
python 爬虫网页登陆的简单实现
2020/11/30 Python
巴西男士个人护理产品商店:SHOP4MEN
2017/08/07 全球购物
印度在线购买电子产品网站:Croma
2020/01/02 全球购物
Java文件和目录(IO)操作
2014/08/26 面试题
如何写出好的Java代码
2014/04/25 面试题
给男朋友的道歉信
2014/01/12 职场文书
英语演讲稿3分钟
2014/04/29 职场文书
委托函范文
2015/01/29 职场文书
2015年妇联工作总结范文
2015/04/22 职场文书
2016年小学“我们的节日·中秋节”活动总结
2016/04/05 职场文书
详解NodeJS模块化
2021/06/15 NodeJs
Python常遇到的错误和异常
2021/11/02 Python
JVM的类加载器和双亲委派模式你了解吗
2022/03/13 Java/Android
Redis官方可视化工具RedisInsight安装使用教程
2022/04/19 Redis