node.js來爬取智聯全國的競爭最激烈的前十崗位

node爬蟲

什麼是爬蟲呢,是一種按照必定的規則,自動地抓取萬維網信息的程序或者腳本。爲何選用node呢,由於我是前端,固然要用js實現。前端

項目分析

爬取http://top.zhaopin.com 智聯網站上的全國的競爭最激烈三個月內前十的崗位。不須要定時爬取。使用request和cheerio模塊。node版本7.6.0、npm版本4.1.2node

安裝

npm install request cheerio -S

request 模塊是一個簡化的HTTP客戶端。
cheerio 模塊專爲服務器設計的核心jQuery的快速,靈活和精益的實現。能夠把爬到的內容和jQuery同樣使用。git

核心代碼

// app.js
const request = require('request');
const cheerio = require('cheerio');

// 發起請求
request('http://top.zhaopin.com', (error, response, body) => {
    if(error){
        console.error(error);
    }
    let json = {};
    // 獲取到的內容放到cheerio模塊
    const $ = cheerio.load(body);

    // jQuery 遍歷  #hotJobTop .topList li  是經過http://top.zhaopin.com 分析頁面結構獲得的
    $('#hotJobTop .topList li').each(function (index) {
        let obj = json[index] = {};
        obj.name = $(this).find('.title').text().trim();
        obj.num = $(this).find('.paddingR10').text().trim();
    });

    // 打印數據
    console.log(json);
});

執行 node app.js 就會獲得以下結果。github

[ { name: 'Java開發工程師', num: '340538人/天' },
  { name: '軟件工程師', num: '220873人/天' },
  { name: '銷售表明', num: '175053人/天' },
  { name: '會計/會計師', num: '168225人/天' },
  { name: '行政專員/助理', num: '150913人/天' },
  { name: 'WEB前端開發', num: '140979人/天' },
  { name: '助理/祕書/文員', num: '139098人/天' },
  { name: '軟件測試', num: '136399人/天' },
  { name: '人力資源專員/助理', num: '123482人/天' },
  { name: '用戶界面(UI)設計', num: '107505人/天' } ]

一個簡單的爬蟲就寫好了,看看前十有沒有你從事的崗位吧!npm

個人博客和github地址

http://blog.langpz.comjson

https://github.com/lanpangzhi服務器

參考

https://github.com/request/requestapp

https://github.com/cheeriojs/cheerio測試

相關文章
相關標籤/搜索