Nodejs小爬虫
2021-06-23 00:03
标签:ref 打开 get print learn 原理 console push 网站 记得先装载http这个模块 打开cmd :npm install http -g cmd:node一下,出来网页源码 然后npm install cheerio -g 用慕课网做测试哈哈哈 ,这里要说明一点:代码和课程中是不一样的,因为网站改动了源代码,class之类的名字换掉了,所以之前的爬虫爬不出来的。还好知道原理以后自己去改就可以了。 去node一下试试,好神奇吧。 Nodejs小爬虫 标签:ref 打开 get print learn 原理 console push 网站 原文地址:http://www.cnblogs.com/Amy-is-a-fish-yeah/p/7163784.htmlvar 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(‘获取出错‘)
})
/**
* Created by Amy on 2017/7/13.
*/
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(‘strong‘).text()
var videos=chapter.find(‘.video‘).children(‘li‘)
var chapterData={
chapterTitle:chapterTitle,
videos:[]
}
videos.each(function(item){
var video= $(this).find(‘.J-media-item‘)
var videoTitle=video.text()
var id = video.attr(‘href‘).split(‘video/‘)[1]
chapterData.videos.push({
title:videoTitle,
id:id
})
})
courseData.push(chapterData)
})
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(){
var courseData= filterChapters(html)
printCourseInfo(courseData)
})
}).on(‘error‘,function(){
console.log(‘获取出错‘)
})