为了账号安全,请及时绑定邮箱和手机立即绑定

运行文件后,无任何反映

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('error',function(){

console.log('获取课程失败')

})

http://img1.sycdn.imooc.com//55e19f6500015ad807720480.jpg

正在回答

7 回答

刚看了我那个,对照上面的改了点,发现现在慕课网这个还可以爬的。

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

qq_这个_0

可以给我看看你的代码吗
2016-04-26 回复 有任何疑惑可以回复我~

源代码可以获取到,为什么后面的获取章节没效果?

0 回复 有任何疑惑可以回复我~
var http = require('http');
var cheerio = require('cheerio');
var url = 'http://localhost/imooc/';

function filterChapters(html) {
	var $ = cheerio.load(html);
	var chapters = $('.chapter');
	var courseData = [];
	// console.log(chapters);
	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('.studyvideo');
			var videoTitle = video.text().split('\n')[0];
			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);
		// console.log(courseData);
	});
}).on('error', function() {
	console.log('获取课程数据出错');
});

网页保存到本地,再执行js

2 回复 有任何疑惑可以回复我~

恩。反扒了啊,我也搞了半天,还以为程序写的问题呢,换个url就好了

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

原来反爬啦我说呢弄个半天没效果哦代码有检测不出什么错误

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

python可以爬

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

慕课网好像已经反爬了,所以什么也得不到~

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

举报

0/150
提交
取消
进击Node.js基础(一)
  • 参与学习       219397    人
  • 解答问题       896    个

本视频教程带你揭开Node.js的面纱,带你走进一个全新世界

进入课程

运行文件后,无任何反映

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信