nodejs实现获取某宝商品分类

 更新时间:2015年05月28日 09:15:29   投稿:hebedich  
这篇文章主要介绍了nodejs实现获取某宝商品分类,十分的简单实用,进入后台直接打开控制台,把代码粘进去运行就OK了,有需要的小伙伴可以参考下。

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

商品分类获取全由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();

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

相关文章

  • 总结几道关于Node.js的面试问题

    总结几道关于Node.js的面试问题

    这篇文章主要总结了几道关于Node.js的面试问题,通过这些问题就来判断一个人的Node.js水平是不太严谨的,但是它能让你对面试者在Node.js上的经验如何有个大概的了解。有需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • nodejs微信开发之接入指南

    nodejs微信开发之接入指南

    这篇文章主要介绍了nodejs微信开发之接入指南,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • Node.js的模块化机制和Buffer对象详解

    Node.js的模块化机制和Buffer对象详解

    这篇文章主要为大家详细介绍了Node.js的模块化机制和Buffer对象,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • nodeJs项目在阿里云的简单部署

    nodeJs项目在阿里云的简单部署

    这篇文章主要为大家详细介绍了nodeJs项目在阿里云的简单部署,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • NodeJs基本语法和类型

    NodeJs基本语法和类型

    这篇文章主要介绍了NodeJs基本语法和类型的相关资料,需要的朋友可以参考下
    2015-02-02
  • Node.js开发教程之基于OnceIO框架实现文件上传和验证功能

    Node.js开发教程之基于OnceIO框架实现文件上传和验证功能

    这篇文章主要介绍了Node.js开发教程之基于OnceIO框架实现文件上传和验证的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-11-11
  • Node.js+Express.js+TS实现简单图床脚本

    Node.js+Express.js+TS实现简单图床脚本

    在这篇博客文章中,我将介绍如何使用 TypeScript 和 Express 框架来编写一个简单的图床脚本,可以将本地图片上传到服务器,并返回图片的 URL,这样,你就可以在 Markdown 文档中方便地引用图片,而不用担心图片的存储和管理问题
    2023-10-10
  • Koa从零搭建到Api实现项目的搭建方法

    Koa从零搭建到Api实现项目的搭建方法

    这篇文章主要介绍了Koa从零搭建到Api实现项目的搭建方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • 简单谈谈node.js 版本控制 nvm和 n

    简单谈谈node.js 版本控制 nvm和 n

    大量开发者的贡献使Node版本的迭代速度很快,版本很多(横跨0.6到0.11),所以升级Node版本就成为了一个问题。目前有n和nvm这两个工具可以对Node进行无痛升级,本文简单介绍一下二者的使用。
    2015-10-10
  • Node.js测试中的Mock文件系统详解

    Node.js测试中的Mock文件系统详解

    相信大家应该都知道在Node.js测试中,常常会需要构造某种项目目录。 为每个测试用例添加相应的目录结构既费时又难以维护。那么这个时候Mock文件系统就派上用场了,下面这篇文章详细的介绍了Mock文件系统,有需要的朋友们可以参考借鉴,下面来一起学习学习吧。
    2016-11-11

最新评论