• 07慕课网《进击Node.js基础(一)》HTTP小爬虫


    获取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('errer',function(){
        console.log('出错')

    对HTML页面处理

    添加cheerio模块

    可以像使用jQuery一样编码

    # 安装到当前目录下
    npm install cheerio

     处理
    var http = require('http')
    var cheerio =  require('cheerio')
    var url='http://www.imooc.com/learn/348'
    
    function filterChapters(html){
        var $ = cheerio.load(html)
    
         var chapters = $('.chapter')
        // [{
        //     chapterTitle:'',
        //     videos:[{
        //             title:'',
        //             id:''
        //         }
        //     ]
        // }]    
        var courseData = []
    
        chapters.each(function(item){
            var chapter = $(this)
            var chapterTitle = chapter.find('h3').text()
            var videos = chapter.find('.video').children('li')
            var chapterData = {
                chapterTitle :chapterTitle.trim(),
                videos:[]
            } 
    
            videos.each(function(item){
                var video = $(this).find('a')
                var videoTile = video.text()
                var id = video.attr('href').split('video/')[1]
                chapterData.videos.push({
                    title: videoTile.trim(),
                    id : id
                })
            })
            courseData.push(chapterData)
    
        })
        return courseData
    }
    
    function printCourseInfo(courseData){
        courseData.forEach(function(item){
            var chapterTitle = item.chapterTitle
    
            console.log(chapterTitle + '
    ')
    
            item.videos.forEach(function(video){
                console.log(' 【' + video.id + '】' + video.title + '
    ')
            })
        })
    }
    
    http.get(url,function(res){
        var html = ''
    
        res.on('data',function(data){
            html += data
        })
    
        res.on('end',function(){
            var courseData = filterChapters(html)
            printCourseInfo(courseData)
        })
    }).on('errer',function(){
        console.log('出错')
    })

     

     使用promise重写:

    10慕课网《进击Node.js基础(一)》初识promise

     
  • 相关阅读:
    asp.net 生成静态页
    修改数据库字段以及字段类型
    int ,int?,int??
    ASP.NET JS常用方法类
    遍历repeater中的控件的几种方式
    .net获取ip地址
    asp.net中DataList和Repeater的使用
    Web.config中注册用户控件和自定义控件
    dos 必知八项命令
    ASP.NET配置文件Web.config
  • 原文地址:https://www.cnblogs.com/-beauTiFul/p/9097219.html
Copyright © 2020-2023  润新知