91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

NodeJs如何實現簡單的爬蟲功能

發布時間:2021-04-20 10:00:18 來源:億速云 閱讀:526 作者:小新 欄目:web開發

這篇文章給大家分享的是有關NodeJs如何實現簡單的爬蟲功能的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

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

2.腳本所用到的nodejs模塊

express     用來搭建一個服務,將結果渲染到頁面

    swig          模板引擎

    cheerio      用來抓取頁面的數據

    requests    用來發送請求數據(具體可查:https://www.npmjs.com/package/requests)

    async        用來處理異步操作,解決請求嵌套的問題,腳本中只使用了async.whilst(test,iteratee,callback),具體可見:https://caolan.github.io/async/

3.實現流程:

   首先先獲取到所爬取頁面的URL,打開boss直聘網站,搜索web前端既可以獲取到 https://www.zhipin.com/c101280100-p100901/?page=1&ka=page-next

NodeJs如何實現簡單的爬蟲功能

   然后通過Chrome瀏覽器打開F12,獲取到信息中多對應的dom節點,即可知道想要獲取信息;

NodeJs如何實現簡單的爬蟲功能

   4.代碼實現

      目錄結構:

NodeJs如何實現簡單的爬蟲功能

      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; //當前頁數
 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);
  }
 );
});

//監聽
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),只截取部分數據

NodeJs如何實現簡單的爬蟲功能

感謝各位的閱讀!關于“NodeJs如何實現簡單的爬蟲功能”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

双牌县| 康马县| 青川县| 玉树县| 巢湖市| 龙游县| 建德市| 津南区| 平利县| 靖远县| 社旗县| 林口县| 修文县| 安义县| 伊通| 滁州市| 绥阳县| 砀山县| 博罗县| 师宗县| 科技| 肇州县| 商都县| 巴东县| 莒南县| 永福县| 通城县| 泌阳县| 马关县| 汝城县| 友谊县| 榆社县| 昌图县| 元氏县| 和政县| 稻城县| 德州市| 保德县| 思茅市| 兰西县| 通城县|