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

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

hot3.png

localhost:2015 端口var http = require('http')http    .createServer(function(req, res){        res.writeHead(200, {'Content-Type':'text/plain'})        res.write('hello nodejs')        res.end()    })    .listen(2015)// 获取网页html// var http = require('http')// var url = 'http://www.imooc.com/learn/348'// http.get(url, function(res){//     var html = ''//     res.on('data',function(data){//         html += data//     })//     res.on('end',function(){//         console.log(html)//     })// }).on('error', function(){//     console.log('获取课程数据出错!')// })//获取页面的指定内容//当前目录安装cheerio  -->  npm install cheeriovar http = require('http')var cheerio = require('cheerio') //引用文件cheerio.jsvar url = 'http://www.imooc.com/learn/348'function filterChapters(html){    var $ = cheerio.load(html)    var chapters = $('.learnchapter') //通过class learnchapter /  chapter 拿到每个大章节              var courseData = []       chapters.each(function(item){ //遍历chapters里面的内容           var chapter = $(this)           var chapterTitle = chapter.find('strong').text()  //找到章节里面的strong标签内的内容           var videos = chapter.find('.video').children('li') //小章节内的li           var childrenData = {  //创建对象自变量               chapterTitle: chapterTitle,               videos: [] //空数组           }           videos.each(function(item){               var video = $(this).find('.studyvideo') //视频class               var videoTitle = video.text()               var id = video.attr('href').split('video/')[1]               childrenData.videos.push({                   title: videoTitle,                   id: id               })           })           courseData.push(childrenData)       })       return courseData}function printCourseInfo(courseData){    courseData.forEach(function(item){        var chapterTitle = item.chapterTitle        console.log(chapterTitle + 'n') //打印标题        item.videos.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('获取课程数据出错!')})

转载于:https://my.oschina.net/newgoup/blog/542554

你可能感兴趣的文章
刷面试题之<<携程 地面业务 前端面试经历>>
查看>>
node笔记(一)-http模块,url模块
查看>>
小程序学习笔记(1)
查看>>
React-新的生命周期(React16版本)
查看>>
vue 博客优化,服务端渲染(SSR)指南
查看>>
交互式数据可视化-D3.js(三)比例尺
查看>>
Python--Redis实战:第二章:使用Redis构建Web应用:第一节:登录和cookie缓存
查看>>
关于响应式布局,你必须要知道的
查看>>
去掉antd的Input组件获取焦点时的蓝色边框
查看>>
redis创建主从复制的过程
查看>>
Java性能优化之JVM内存模型
查看>>
[LeetCode] 291. Word Pattern II
查看>>
在前端如何保护共享对象
查看>>
Java多线程进阶(三四)—— J.U.C之collections框架:PriorityBlockingQueue
查看>>
RKE安装kubernetes集群+Rancher 2.0安装
查看>>
手写数组操作常见方法的polyfill
查看>>
javascript中indexOf与search的区别(详解)
查看>>
利用svg页面高斯模糊
查看>>
mybatis模仿1之我先看看
查看>>
记一次小程序之旅
查看>>