在imooc網(wǎng)上跟著老師寫了兩個爬蟲,一個最簡單的直接爬整個頁面,一個完善版把章節(jié)標題和對應編號打出來了。
為樂清等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及樂清網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都做網(wǎng)站、網(wǎng)站建設、樂清網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!看完之后,自己也想寫一個爬蟲,用自己的博客做測試,雖然結果并沒有很成功- -,還是把代碼放上來。
目標是抓取章節(jié)的標題。
博客頁面:
對應標簽:
頁面源代碼:
經(jīng)過分析,我們應該要抓取class=artHead的<div>,往下還有一個沒有類的<div>,然后找到它的<h4>標簽下子標簽<a>的內(nèi)容,就是章節(jié)的名字。
上代碼:
//引入http模塊 var http = require('http'); //確定要抓取的頁面 //debug:本來寫了qmkkd.blog.51cto.com,一直出錯,在前面加上http就好了。 var url = '';//這里的url是'http://qmkkd.blog.51cto.com';,博客顯示不出來,有毒 //引入cherrio模塊,類似服務器端的jquery var cheerio=require('cheerio'); function filterChapters(html){ //將html變成jquery對象 var $ = cheerio.load(html); var artHeads = $('.artHead'); var blogData=[]; artHeads.each(function(item){ var artHead = $(this); //獲取文章標題 var artTitle = artHead.find('h4').children('a').text(); blogData.push(artTitle); }) return blogData; } function printBlogInfo(blogData){ blogData.forEach(function(item){ var artTitle = item; console.log(item+'\n'); }) } http.get(url,function(res){ var buffers=[]; var nread = 0; res.on('data',function(data){ buffers.push(data); nread+=data.length; }); //網(wǎng)上找到的處理中文亂碼問題的方法,但好像沒有解決T_T //之后還采用了bufferhelper類,好像也不對=-= //應該是基礎不好的問題,暫時debug不了,先放著 res.on('end',function(){ var buffer =null; switch(buffers.length){ case 0:buffer=new Buffer(0); break; case 1:buffer=buffers[0]; break; default: buffer = new Buffer(nread); for(var i=0,pos=0,l=buffers.length;i<l;i++){ var chunk = buffers[i]; chunk.copy(buffer,pos); pos+=chunk.length; } break; } var html=buffer.toString(); var blogData = filterChapters(html); printBlogInfo(blogData); }) }).on('error',function(){ //執(zhí)行http請求失敗時,返回錯誤信息 console.log('獲取博客數(shù)據(jù)出錯'); })
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
文章題目:Node.js實現(xiàn)單頁面爬蟲-創(chuàng)新互聯(lián)
文章起源:http://aaarwkj.com/article14/pjoge.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、網(wǎng)站內(nèi)鏈、ChatGPT、企業(yè)網(wǎng)站制作、網(wǎng)站策劃、網(wǎng)站導航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容