国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

NodeJs實現(xiàn)簡單的爬蟲功能案例分析

2019-11-19 12:24:35
字體:
供稿:網(wǎng)友

1.爬蟲:爬蟲,是一種按照一定的規(guī)則,自動地抓取網(wǎng)頁信息的程序或者腳本;利用NodeJS實現(xiàn)一個簡單的爬蟲案例,爬取Boss直聘網(wǎng)站的web前端相關(guān)的招聘信息,以廣州地區(qū)為例;

2.腳本所用到的nodejs模塊

express     用來搭建一個服務(wù),將結(jié)果渲染到頁面

    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,獲取到信息中多對應(yīng)的dom節(jié)點,即可知道想要獲取信息;

   4.代碼實現(xiàn)

      目錄結(jié)構(gòu):

      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; //當(dāng)前頁數(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.運行結(jié)果(http://localhost:8080),只截取部分?jǐn)?shù)據(jù)

總結(jié)

以上所述是小編給大家介紹的NodeJs實現(xiàn)簡單的爬蟲功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 社旗县| 武乡县| 共和县| 海兴县| 静海县| 滨州市| 大兴区| 论坛| 台东市| 林西县| 根河市| 德州市| 浪卡子县| 浦县| 泰州市| 双柏县| 清河县| 龙泉市| 南召县| 平邑县| 潍坊市| 那曲县| 六盘水市| 西宁市| 合江县| 涡阳县| 康平县| 榆树市| 华亭县| 邓州市| 广宗县| 台前县| 施秉县| 河津市| 游戏| 鸡泽县| 靖州| 永平县| 新乡市| 巍山| 新邵县|