這篇文章給大家分享的是有關NodeJs如何實現(xiàn)簡單的爬蟲功能的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
專注于為中小企業(yè)提供成都網(wǎng)站建設、網(wǎng)站制作服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)滑縣免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉變。1.爬蟲:爬蟲,是一種按照一定的規(guī)則,自動地抓取網(wǎng)頁信息的程序或者腳本;利用NodeJS實現(xiàn)一個簡單的爬蟲案例,爬取Boss直聘網(wǎng)站的web前端相關的招聘信息,以廣州地區(qū)為例;
2.腳本所用到的nodejs模塊
express 用來搭建一個服務,將結果渲染到頁面
swig 模板引擎
cheerio 用來抓取頁面的數(shù)據(jù)
requests 用來發(fā)送請求數(shù)據(jù)(具體可查:https://www.npmjs.com/package/requests)
async 用來處理異步操作,解決請求嵌套的問題,腳本中只使用了async.whilst(test,iteratee,callback),具體可見:https://caolan.github.io/async/
3.實現(xiàn)流程:
首先先獲取到所爬取頁面的URL,打開boss直聘網(wǎng)站,搜索web前端既可以獲取到 https://www.zhipin.com/c101280100-p100901/?page=1&ka=page-next
然后通過Chrome瀏覽器打開F12,獲取到信息中多對應的dom節(jié)點,即可知道想要獲取信息;
4.代碼實現(xiàn)
目錄結構:
app.js
var cheerio = require('cheerio'); var requests = require('requests'); var async = require('async'); var express = require('express'); var swig = require('swig'); var app = express(); swig.setDefaults({cache:false}); app.set('views','./views/'); app.set('view engine','html'); app.engine('html',swig.renderFile); app.get('/',function(req,res,next){ var page = 1; //當前頁數(shù) var list = []; //保存記錄 async.whilst( function(){ return page < 11; }, function(callback){ requests(`https://www.zhipin.com/c101280100-p100901/?page=${page}&ka=page-next`) .on('data',function(chunk){ var $ = cheerio.load(chunk.toString()); $('.job-primary').each(function(){ var company = $(this).find('.info-company .company-text .name').text(); var job_title = $(this).find('.info-primary .name .job-title').text(); var salary = $(this).find('.info-primary .name .red').text(); var description = $(this).find('.info-company .company-text p').text(); var area = $(this).find('.info-primary p').text(); var item = { company:company, job_title:job_title, salary:salary, description:description, area:area }; list.push(item); }); page++; callback(); }).on('end',function(err){ if(err){ console.log(err); } if(page==10){ res.render('index',{ lists:list }); } }); }, function(err){ console.log(err); } ); }); //監(jiān)聽 app.listen(8080);
view/index.html頁面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <style> table{ width:1300px; border:1px solid #ccc; border-collapse: collapse; text-align: center; margin:0 auto; } td,tr,th{ border:1px solid #ccc; border-collapse: collapse; } tr{ height:30px; line-height: 30px; } </style> <body> <table> <thead> <tr> <th>公司名稱</th> <th>公司地址</th> <th>薪資</th> <th>公司描述</th> <th>崗位名稱</th> </tr> </thead> <tbody> {% for list in lists %} <tr> <td>{{list.company}}</td> <td>{{list.area}}</td> <td>{{list.salary}}</td> <td>{{list.description}}</td> <td>{{list.job_title}}</td> </tr> {% endfor %} </tbody> </table> </body> </html>
5.啟動
直接通過 node app.js啟動即可;
6.運行結果(http://localhost:8080),只截取部分數(shù)據(jù)
感謝各位的閱讀!關于“NodeJs如何實現(xiàn)簡單的爬蟲功能”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網(wǎng)站名稱:NodeJs如何實現(xiàn)簡單的爬蟲功能-創(chuàng)新互聯(lián)
網(wǎng)頁地址:http://jinyejixie.com/article46/dippeg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊、響應式網(wǎng)站、定制網(wǎng)站、軟件開發(fā)、用戶體驗、Google
聲明:本網(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)容