在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

进击nodejs第一季爬虫,打印出来一大堆空格,怎么回事?

const http = require('http');
const cheerio = require('cheerio');
const url = "http://www.imooc.com/learn/348";
http.get(url, (res) => {
    var html = "";
    res.on('data', (data) => {
        html += data;
    });
    res.on('end', () => {
        var courseData = filterChapters(html);
        printCourseData(courseData);
    })
}).on('error', () => {
    console.log("获开数据出错!");
});


function filterChapters(html) {
    // [
    //     {
    //         "chapterTitle": "",
    //         video: {
    //             title: "",
    //             id: ""
    //         }
    //     }
    // ]
    var $ = cheerio.load(html);
    var chapters = $('.chapter');
    var courseData = [];
    chapters.each((index, item) => {
        var chapter = $(this);
        var chapterTitle = chapter.find("strong").text();
        console.log(chapterTitle);
        var videos = chapter.find('ul').children("li");
        var chapterData = {
            chapterTitle: chapterTitle,
            videos: []
        }
        videos.each((item) => {
            var video = $(this).find(".J-media-item");
            var videoTitle = video.find(".icon-video").text();
            var id = videos.attr("href").split("video/")[1];
            chapterData.video.push({
                "title": videoTitle,
                "id": id
            });
        });
        courseData.push(chapterData);
    });
    return courseData;
}


function printCourseData(courseData) {
    courseData.forEach(function (element) {
        var chapterTitle = element.chapterTitle;
        console.log(chapterTitle + '\n');
        element.videos.forEach((video) => {
            console.log("【" + video.id + "】" + video.title + "\n");
        });
    }, this);
}

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与1

网站设计变了,通过Jquery取到的元素默认就会包括了很多空格,需要再手动去除

使用道具 举报

发新帖
国内首家创新型IT技术需求众包服务平台,软件需求就上天盟网! 立即登录 立即注册