var http=require("http");
var cheerio=require('cheerio');
var url="http://www.imooc.com/learn/348";
function filterCharpter(html){
   var $=cheerio.load(html);
   var charpters=$(".chapter");
   console.log(typeof(charpters));
   var courseData=[];
   charpters.each(function(item){
          var chapter=$(this);
          chapter.find('strong').find('.chapter-content').remove();
          var chapterTitle=chapter.find('strong').text().trim();
          var videos=chapter.find('.video>li');
          var charpterData={
               chapterTitle:chapterTitle,
               videos:[]
          }

          videos.each(function(item){
              var video=$(this);
               var videoTitle=video.find('.J-media-item').text().trim();
               var viedoTitleData=videoTitle.split('\r\n');
               console.log(viedoTitleData);
               var id=video.data("media-id");
               var viedoData={
                   videoTitle:viedoTitleData[0]+"  "+viedoTitleData[1].trim(),
                   id:id
               }
               charpterData.videos.push(viedoData);
          })

          courseData.push(charpterData);
   })
    return courseData;
}
function printOut(courseData)
{
     courseData.forEach(function(item){
         console.log(item.chapterTitle+'\n');
         item.videos.forEach(function(video){
             console.log("   【"+video.id+"】"+ video.videoTitle);
         })
     })
}
var server=http.get(url,function(res){
    var html="";
   res.on('data',function(data){
         html+=data
   })
   res.on('end',function(){
       
       var courseData=filterCharpter(html);
       printOut(courseData);
   })
}).on('error',function(){

       console.log("error")
   });

利用nodeJS实现的网络小爬虫的更多相关文章

  1. Python 基于学习 网络小爬虫

    <span style="font-size:18px;"># # 百度贴吧图片网络小爬虫 # import re import urllib def getHtml( ...

  2. Python练习,网络小爬虫(初级)

    最近还在看Python版的rcnn代码,附带练习Python编程写一个小的网络爬虫程序. 抓取网页的过程其实和读者平时使用IE浏览器浏览网页的道理是一样的.比如说你在浏览器的地址栏中输入    www ...

  3. nodejs http小爬虫

    本课程用nodejs写一个http小爬虫,首先科普一下,爬虫就是把网上的网页代码给弄下来,然后纳为己用.目前最大的爬虫:百度快照等的. 下面直接上代码 示例一: var http = require( ...

  4. Python 利用Python编写简单网络爬虫实例3

    利用Python编写简单网络爬虫实例3 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站“http://bbs.51testing. ...

  5. Python 利用Python编写简单网络爬虫实例2

    利用Python编写简单网络爬虫实例2 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站“http://www.51testing. ...

  6. nodejs .http模块, cheerio模块 实现 小爬虫.

    代码: var http = require("http"); var cheerio = require("cheerio"); var url = 'htt ...

  7. [Nodejs] 用node写个爬虫

    寻找爬取的目标 首先我们需要一个坚定的目标,于是找个一个比较好看一些网站,将一些信息统计一下,比如 url/tag/title/number...等信息 init(1, 2); //设置页数,现在是1 ...

  8. Java豆瓣电影爬虫——小爬虫成长记(附源码)

    以前也用过爬虫,比如使用nutch爬取指定种子,基于爬到的数据做搜索,还大致看过一些源码.当然,nutch对于爬虫考虑的是十分全面和细致的.每当看到屏幕上唰唰过去的爬取到的网页信息以及处理信息的时候, ...

  9. 放养的小爬虫--豆瓣电影入门级爬虫(mongodb使用教程~)

    放养的小爬虫--豆瓣电影入门级爬虫(mongodb使用教程~) 笔者声明:只用于学习交流,不用于其他途径.源代码已上传github.githu地址:https://github.com/Erma-Wa ...

随机推荐

  1. nfs部署和优化

    nfs--网络文件系统 1.说明:允许一个系统在网络上与他人共享目录和文件 2.好处:通过nfs服务,就可以让这个机器访问远程的文件,像访问自己的文件一样,属于cs通信   3.原理说明:假设有A,B ...

  2. 关于kali2.0 rolling无法连接数据的解决办法

    在使用kali2.0时,经常遇到metasploit无法连接数据库的问题,经过在网上寻找资料,很多都是对kali2.0的,有些路径都是不同的了,所以未能解决, 最后在自己的摸索下,找到了如下方法: 其 ...

  3. 程序中使用ajax时,type为put,或者delete时在 IIS上没效果,发生HTTP Error 405.0 - Method Not Allowed

    其实使用put delete  是在创建webapi中基本才会使用. WebDAV 是超文本传输协议 (HTTP) 的一组扩展,为 Internet 上计算机之间的编辑和文件管理提供了标准.利用这个协 ...

  4. [mysql]数据库基础知识

    数据库管理系统DBMS 软件 bin config db (保存数据) 写程序: 数据库在本地 找到目录 添加数据 数据库在远程 socket连接上远程机器 socket发送命令 需要做的事情 程序 ...

  5. 【转】Caffe初试(六)激活层及参数

    在激活层中,对输入数据进行激活操作(实际上就是一种函数变换),是逐元素进行运算的.从bottom得到一个blob数据输入,运算后,从top输入一个blob数据.在运算过程中,没有改变数据的大小,即输入 ...

  6. SpringMVC学习(一)

    Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分. Web MVC架构 1.用户发起request请求至控制器(Controller) 控制接收用户请求的数 ...

  7. js常见报错之Unexpected token in JSON at position

    源头   出现这个报错提示,根本原因只有一个--json解析异常,所以请大家直接去关注自己json的返回数据注意检查其返回内容和内容的格式是否正确,至于本文血案的导火索是因为json注释滴问题. 事发 ...

  8. 【MongoDB】6.关于MongoDB存储文件的 命令执行+代码执行

    参考:http://www.runoob.com/mongodb/mongodb-gridfs.html 1.命令执行 MongoDB GridFS GridFS 用于存储和恢复那些超过16M(BSO ...

  9. Xamarin设备相关图片尺寸要求

    Xamarin设备相关图片尺寸要求   Xamarin跨平台开发,要兼顾iOS.Android.尤其是图片方面,各个平台有对应的不同要求.在iOS中,需要提供没有后缀(设备无关单位尺寸).@2x(双倍 ...

  10. wenbenfenlei

    ICTCLAS: 该分词系统的主要思想是先通过CHMM(层叠形马尔可夫模型)进行分词,通过分层,既增加了分词的准确性,又保证了分词的效率.基本思路是:先进行原子切分,然后在此基础上进行N-最短路径粗切 ...