//评分8分以上影片 200余部!,这里只是统计数据,不再进行抓取
function highScoreMovie($){
var url='http://www.dytt8.net'+$('.co_content2 ul a').eq(0).attr('href');
console.log(url);
superagent
.get(url)
.charset('gb2312')
.end(function (err, sres) {
// 常规的错误处理
if (err) {
console.log('抓取'+url+'这条信息的时候出错了')
}
var $ = cheerio.load(sres.text);
var elemP=$('#Zoom p');
var elemA=$('#Zoom a');
for (var k = 1; k < elemP.length; k++) {
var Hurl=elemP.eq(k).find('a').text();
if(highScoreMovieArr.indexOf(Hurl) ==-1){
highScoreMovieArr.push(Hurl);
};
}
});
}
3、分离出左侧栏的信息,
如下图,首页中,详情页的链接都在这里$(‘.co_content2 ul a’)。
因此我们将左侧栏这里的详情页链接都遍历出来,保存在一个newMovieLinkArr这个数组里面。
getAllMovieLink方法如下:
// 获取首页中左侧栏的所有链接
function getAllMovieLink($){
var linkElem=$('.co_content2 ul a');
for(var i=1;i<170;i++){
var url='http://www.dytt8.net'+linkElem.eq(i).attr('href');
// 注意去重
if(newMovieLinkArr.indexOf(url) ==-1){
newMovieLinkArr.push(url);
};
}
}
4、对获取到的电影详情页进行爬虫,提取有用信息,比如电影的下载链接,这个是我们所关心的。
// 命令 ep 重复监听 emit事件(get_topic_html),当get_topic_html爬取完毕之后执行
ep.after('get_topic_html', 1, function (eps) {
var concurrencyCount = 0;
var num=-4; //因为是5个并发,所以需要减4 // 利用callback函数将结果返回去,然后在结果中取出整个结果数组。
var fetchUrl = function (myurl, callback) {
var fetchStart = new Date().getTime();
concurrencyCount++;
num+=1
console.log('现在的并发数是', concurrencyCount, ',正在抓取的是', myurl);
superagent
.get(myurl)
.charset('gb2312') //解决编码问题
.end(function (err, ssres) {
if (err) {
callback(err, myurl + ' error happened!');
errLength.push(myurl);
return next(err);
}
var time = new Date().getTime() - fetchStart;
console.log('抓取 ' + myurl + ' 成功', ',耗时' + time + '毫秒');
concurrencyCount--;
var $ = cheerio.load(ssres.text);
// 对获取的结果进行处理函数
getDownloadLink($,function(obj){
res.write('<br/>');









