博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nodejs 之 小爬虫
阅读量:4969 次
发布时间:2019-06-12

本文共 2251 字,大约阅读时间需要 7 分钟。

一、简单的单页面
var http = require('http') var url = 'http://www.imooc.com/learn/348' http.get(url,function(res){   var html = ''    //有data触发时    res.on('data',function(data){        html += data    })    res.on('end',function(){        console.log(html)    })//出现异常时}).on('error',function(){    console.log('获取出错')})var server = http.createServer(function(req,res){        res.writeHead(200,{'Content-Type':'text/plain'})        res.end();    })server.listen(2017)

  

运行结果

 

二、获取页面的课程列表

安装cheerio

cmd 执行命令 npm install  cheerio 然后就可以require cheerio

var http = require('http')var cheerio = require('cheerio')var url = 'http://www.imooc.com/learn/348' //过滤页面,获取到列表的名称与id等信息  与javascript方法一致function filterChapters(html){    var $ = cheerio.load(html)    // console.log($)    var chapters = $('.chapter')    var courseData = []    chapters.each(function (item) {        var chapter = $(this)        var chapterTitle = chapter.find('strong').text()        var videos = chapter.find('.video').children('li')        var chapterData = {            chapterTitle:chapterTitle,            video:[]        }        // console.log(videos + '24')        videos.each(function(item){            // var video = $(this).find('.studyvideo')            var videoTitle = $(this).text()            var id = $(this).attr("data-media-id")            chapterData.video.push({                title:videoTitle,                id:id            })        })        courseData.push(chapterData)    })    return courseData}//将获取到的信息打印出来function printCourseInfo(courseData) {    courseData.forEach(function(item){        var chapterTitle = item.chapterTitle        item.video.forEach(function(video){            console.log('【' +video.id+'】' +video.title +'\n')        })    })}http.get(url,function(res){    var html = ''    res.on('data',function(data){        html += data    })    res.on('end',function(){        //过滤页面信息        // console.log(html)        var courseData = filterChapters(html)        printCourseInfo(courseData)    })}).on('error',function(){    console.log('获取出错')})var server = http.createServer(function(req,res){        res.writeHead(200,{'Content-Type':'text/plain'})        res.end();    })server.listen(1337)

运行结果

 

转载于:https://www.cnblogs.com/xwtbk/p/7132618.html

你可能感兴趣的文章
ios 上架流程
查看>>
ajax连接池和XMLHttpRequest
查看>>
[Voice communications] 声音的滤波
查看>>
BZOJ.3139.[HNOI2013]比赛(搜索 Hash)
查看>>
json在线解析
查看>>
存储设备形成的层次结构
查看>>
源码阅读 - java.util.concurrent (三)ConcurrentHashMap
查看>>
Daily Scrum 10.30
查看>>
SQL语言之概述(一)
查看>>
数据库表 copy
查看>>
LinkedList源码解析
查看>>
SignalR循序渐进(一)简单的聊天程序
查看>>
MyServer
查看>>
Learning Cocos2d-x for XNA(2)——深入剖析Hello World
查看>>
软件建模——第9章 毕业论文管理系统—面向对象方法
查看>>
Http协议
查看>>
手机端web开发必备代码
查看>>
[SDOI2008]洞穴勘测
查看>>
NOI2014 购票
查看>>
i am back
查看>>