亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

執行這個爬蟲的代碼后 沒有反應

http://img1.sycdn.imooc.com//58af01b40001fe5c03280116.jpg

var?http?=?require('http')
var?cheerio?=?require('cheerio')
var?url?=?'http://www.xianlaiwan.cn/learn/348'

function?filterChapters(html){
????var?$?=?cheerio.load(html)
????var?chapters?=?$('.learnchapter')
????//?[{
????//?????chapterTitle?:?'',
????//?????videos:?[
????//?????????title:'',
????//?????????id:''
????//?????]
????//?}]
????var?courseData?=?[]
????chapters.each(function(item){
????????var?chapter?=?$(this)
????????var?chapterTitle?=?chapter.find('strong').test();
????????var?videos?=?chapter.find('.video').children('li');
????????var?chapterData?=?{
????????????chapterTitle?:?chapterTitle,
????????????videos?:[]
????????}
????????videos.each(function(item){
????????????var?video?=?$(this).find('.studyvideo');
????????????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('獲取課程數據出錯!')
})


正在回答

3 回答

因為慕課網源碼里html的class變了 所以爬不到了?.learnchapter變成了chapter ?.studyvideo變成了video

0 回復 有任何疑惑可以回復我~
#1

王平安 提問者

非常感謝!
2017-02-24 回復 有任何疑惑可以回復我~

非常感謝

0 回復 有任何疑惑可以回復我~

//這個是我的代碼,可以成功爬到數據的,你可以對比一下看DOM結構發生的改變。

//2017-04-06


var http = require('http')

var cheerio = require('cheerio')

var url = 'http://www.xianlaiwan.cn/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)

var videoTitle = video.text()

var id = video.attr('data-media-id')

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('獲取課程數據出錯')

})


1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
進擊Node.js基礎(一)
  • 參與學習       219329    人
  • 解答問題       982    個

本視頻教程帶你揭開Node.js的面紗,帶你走進一個全新世界

進入課程

執行這個爬蟲的代碼后 沒有反應

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號