第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用nodejs抓取時,出現(xiàn)轉(zhuǎn)碼問題

使用nodejs抓取時,出現(xiàn)轉(zhuǎn)碼問題

不負(fù)相思意 2019-04-16 17:05:51
newsList和newsDetail單獨拿出來調(diào)試沒有問題。但如下放在一起時,提示bodyisnotdefined經(jīng)多次調(diào)試,錯誤節(jié)點應(yīng)該是出現(xiàn)在readNewsDetail()中//轉(zhuǎn)換gbk編碼的網(wǎng)頁內(nèi)容body2=iconv.decode(body,'gbk');//根據(jù)網(wǎng)頁內(nèi)容創(chuàng)建DOM操作對象var$=cheerio.load(body2);這兩句。因為直接var$=cheerio.load(res.body.toString());的話,不會報錯。但這樣一來,輸出的就是亂碼了,所以必須轉(zhuǎn)碼。但一按照我的寫法轉(zhuǎn)碼,就會報錯……請教各位,這個問題應(yīng)該怎么解決呢?源碼:varrequest=require('request');varcheerio=require('cheerio');variconv=require('iconv-lite');varasync=require('async');vardebug=require('debug')('sina1:update');/***獲取新聞列表*/functionreadNewsList(url,callback){debug('讀取新聞列表:%s',url);request(url,function(err,res){if(err)returncallback(err);//根據(jù)網(wǎng)頁內(nèi)容創(chuàng)建DOM操作對象var$=cheerio.load(res.body.toString());//讀取新聞列表varnewsList=[];$('.news-item').each(function(){var$me=$(this);var$title=$me.find('h2a');var$time=$me.find('.time');var$url=$me.find('h2a');varitem={title:$title.text().trim(),url:$url.attr('href'),time:$time.text().trim()};newsList.push(item);});//返回結(jié)果callback(null,newsList);});}/***獲取新聞頁面內(nèi)容*/functionreadNewsDetail(url,callback){debug('讀取新聞內(nèi)容:%s',url);request(url,function(err,res){if(err)returncallback(err);//轉(zhuǎn)換gbk編碼的網(wǎng)頁內(nèi)容body2=iconv.decode(body,'gbk');//根據(jù)網(wǎng)頁內(nèi)容創(chuàng)建DOM操作對象var$=cheerio.load(body2);//獲取正文內(nèi)容varnewsDetail=[];$('.article').each(function(){var$me=$(this);var$img=$me.find('.img_wrapperimg');varitem={content:$me.html().trim(),img:$img.attr('src')};newsDetail.push(item);});//返回結(jié)果callback(null,newsDetail);});}//讀取列表下的所有新聞readNewsList('http://news.sina.com.cn/china/',function(err,newsList){if(err)returnconsole.error(err.stack);//依次取出newsList數(shù)組的每個元素,調(diào)用第二個參數(shù)中傳入的函數(shù)//函數(shù)的第一個參數(shù)即是newsList數(shù)組的其中一個元素//函數(shù)的第二個參數(shù)是回調(diào)函數(shù)async.eachSeries(newsList,function(news,next){//讀取新聞?wù)膔eadNewsDetail(news.url,function(err,detail){console.log(detail);//if(err)console.error(err.stack);//////直接顯示//console.log(detail);////////需要調(diào)用next()來返回//next();});},function(err){//當(dāng)遍歷完newsList后,執(zhí)行此回調(diào)函數(shù)if(err)returnconsole.error(err.stack);console.log('完成');});});
查看完整描述

1 回答

  • 1 回答
  • 0 關(guān)注
  • 335 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號