-
Notifications
You must be signed in to change notification settings - Fork 0
/
muke.js
56 lines (50 loc) · 1.26 KB
/
muke.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
var http = require("http");
var url = "http://www.imooc.com/learn/348";
var cheerio = require("cheerio");
function filterChapters(html){
var $ = cheerio.load(html);
var chapters = $(".chapter");
var courseDate = [];
chapters.each(function(item){
var chapter = $(this);
var chapterTitle = chapter.find("i").text();
var videos = chapter.find(".video").children("li");
var chapterData = {
chapterTitle: chapterTitle,
videos:[]
}
videos.each(function(){
var video = $(this).find(".J-media-item");
var videoTitle = video.text();
var videoId = video.attr("href").split("video/")[1];
console.log(videoId)
chapterData.videos.push({
title:videoTitle,
id:videoId
})
})
courseDate.push(chapterData);
})
return courseDate;
}
function printCourseInfo(courseData){
courseData.forEach(function(item){
var chapterTitle = item.chapterTitle;
console.log(chapterTitle + '\n');
item.videos.forEach(function(video){
console.log(video.title + "nnn" +video.id);
})
})
}
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("error",function(){
console.log("²»ºÃÒâ˼£¬³ö´íÁË");
})