在imooc網(wǎng)上跟著老師寫了兩個(gè)爬蟲,一個(gè)最簡單的直接爬整個(gè)頁面,一個(gè)完善版把章節(jié)標(biāo)題和對應(yīng)編號打出來了。
看完之后,自己也想寫一個(gè)爬蟲,用自己的博客做測試,雖然結(jié)果并沒有很成功- -,還是把代碼放上來。
目標(biāo)是抓取章節(jié)的標(biāo)題。
博客頁面:
對應(yīng)標(biāo)簽:
頁面源代碼:
經(jīng)過分析,我們應(yīng)該要抓取class=artHead的<div>,往下還有一個(gè)沒有類的<div>,然后找到它的<h4>標(biāo)簽下子標(biāo)簽<a>的內(nèi)容,就是章節(jié)的名字。
上代碼:
//引入http模塊 var http = require('http'); //確定要抓取的頁面 //debug:本來寫了qmkkd.blog.51cto.com,一直出錯(cuò),在前面加上http就好了。 var url = '';//這里的url是'http://qmkkd.blog.51cto.com';,博客顯示不出來,有毒 //引入cherrio模塊,類似服務(wù)器端的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); //獲取文章標(biāo)題 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類,好像也不對=-= //應(yīng)該是基礎(chǔ)不好的問題,暫時(shí)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請求失敗時(shí),返回錯(cuò)誤信息 console.log('獲取博客數(shù)據(jù)出錯(cuò)'); })
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
文章題目:Node.js實(shí)現(xiàn)單頁面爬蟲-創(chuàng)新互聯(lián)
文章起源:http://vcdvsql.cn/article14/pjoge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、網(wǎng)站內(nèi)鏈、ChatGPT、企業(yè)網(wǎng)站制作、網(wǎng)站策劃、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容