亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Node.js實現(xiàn)簡單的爬取的示例代碼

 更新時間:2019年06月25日 09:35:43   作者:毛寸頭少年*  
這篇文章主要介紹了Node.js實現(xiàn)簡單的爬取的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

學習【node.js】也有幾天時間了,所以打算寫著練練手;索然我作為一個后端的選手,寫起來還有那么一絲熟悉的感覺。emmm~~ ‘貨'不多講 ,開搞........

首先是依賴選擇:

代碼塊如下:

//引入依賴

//https請求

const https = require('https');

//簡稱node版的jquery

const cheerio = require('cheerio');

//解決防止出現(xiàn)亂碼

const iconv = require('iconv-lite')

//http請求

const request = require("request");

//負責讀寫文件

const fs = require('fs');

//處理文件路徑

const path = require('path');

爬取路徑:

代碼塊:(PS:這里單獨拿出來是因為這個站的素材比較推薦,可以上去瞅瞅~~)

const url = 'https://unsplash.com/';

初步實現(xiàn):

網(wǎng)站的基本構(gòu)成

這里主要是我們直接確認一下需要的【img】標簽,以及外面的【figure】,然后直接就可以開工了....

核心代碼:

//方法對象

const util = {

 

  getsrc: function (url) {

    https.get(url, res => {

      const chunks = [];

      res.on('data', chunk => {

        // chunks里面存儲著網(wǎng)頁的html內(nèi)容

        chunks.push(chunk);

      });

      res.on('end', e => {

 

        let ALL = [];

        //編碼格式

        let html = iconv.decode(Buffer.concat(chunks), 'utf8');

        let $ = cheerio.load(html, { decodeEntities: false });

 

        //標簽遍歷

        $("figure img").each(function (idex, elent) {

          let $elent = $(elent);

          let $srcset = $elent.attr("srcset");

          if ($srcset != undefined) {

            let src = ($srcset.split(',').pop()).split('?')[0];

            ALL.push({

              src: src

            })

          }

        });

        //遍歷數(shù)組 每個后面加.jpg

        ALL.forEach(item => {

          util.downloadimg(item.src, path.basename(item.src) + ".jpg", function () {

            console.log(path.basename(item.src) + ".jpg");

          });

        })

      });

 

      res.on('error', e => {

        console.log('Error: ' + e.message);

      });

    });

  },

 

  //運行主函數(shù)

  main: function () {

    console.log("------start--------");

    util.getsrc(url);

  },

  //下載圖片函數(shù)

  downloadimg: function (src, srcname, callback) {

 

    //http請求

    request.head(src, function (err, res, body) {

      if (err) {

        console.log('err:' + err);

        return false;

      }

      console.log('res: ' + res);

      //保存數(shù)據(jù),這里是防止未來得及記錄數(shù)據(jù)又開始讀取數(shù)據(jù)而導(dǎo)致數(shù)據(jù)丟失

      request(src).pipe(fs.createWriteStream('./img/' + srcname)).on('close', callback);

    });

  }

}

 

//主函數(shù)

util.main();

然后就可以運行 node xxx.js 看運行結(jié)果。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • NPM全局安裝與本地安裝的區(qū)別詳析

    NPM全局安裝與本地安裝的區(qū)別詳析

    NPM是隨同NodeJS一起安裝的包管理工具,能解決NodeJS代碼部署上的很多問題,下面這篇文章主要給大家介紹了關(guān)于NPM全局安裝與本地安裝區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • 詳解Node.js如何開發(fā)命令行工具

    詳解Node.js如何開發(fā)命令行工具

    追求更高的效率是碼農(nóng)不斷的追求。選擇合適的工具,合理搭配使用,既能提高一部分開發(fā)效率,又能改善寫代碼時的心情。使用Node.js開發(fā)命令行工具是開發(fā)者應(yīng)該掌握的一項技能,適當編寫命令行工具以提高開發(fā)效率。
    2016-08-08
  • nodejs使用express獲取get和post傳值及session驗證的方法

    nodejs使用express獲取get和post傳值及session驗證的方法

    這篇文章主要介紹了nodejs使用express獲取get和post傳值及session驗證的方法,結(jié)合實例形式分析了nodejs使用express實現(xiàn)獲取get和post傳值及session驗證功能的具體操作步驟與注意事項,需要的朋友可以參考下
    2017-11-11
  • Nodejs實現(xiàn)圖片上傳、壓縮預(yù)覽、定時刪除功能

    Nodejs實現(xiàn)圖片上傳、壓縮預(yù)覽、定時刪除功能

    本文分步驟給大家介紹了Nodejs實現(xiàn)圖片的上傳、壓縮預(yù)覽、定時刪除功能,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • Node.js高級編程使用RPC通信示例詳解

    Node.js高級編程使用RPC通信示例詳解

    這篇文章主要為大家介紹了Node.js高級編程使用RPC通信示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • 解決await在forEach中不起作用的問題

    解決await在forEach中不起作用的問題

    這篇文章主要介紹了解決await在forEach中不起作用的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • 在Node.js中實現(xiàn)獲取用戶頻道信息的功能

    在Node.js中實現(xiàn)獲取用戶頻道信息的功能

    在構(gòu)建社交或視頻分享平臺時,允許用戶查看其他用戶的頻道信息是一個基本需求,本文將介紹如何在Node.js應(yīng)用中,使用Express框架和Mongoose庫來實現(xiàn)這一功能,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下
    2024-04-04
  • node中使用shell腳本的方法步驟

    node中使用shell腳本的方法步驟

    這篇文章主要介紹了node中使用shell腳本的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • nodejs實現(xiàn)郵箱發(fā)送驗證碼功能

    nodejs實現(xiàn)郵箱發(fā)送驗證碼功能

    開發(fā)個人網(wǎng)站時,注冊頁面可以使用郵箱驗證,于是記錄一下如何用nodejs/express服務(wù)器實現(xiàn)郵箱發(fā)送驗證碼,不僅可以在郵箱注冊時使用,還可以拓展用于各種安全驗證,本文給大家介紹了使用nodejs實現(xiàn)郵箱發(fā)送驗證碼功能,需要的朋友可以參考下
    2024-07-07
  • Node.js中使用jQuery的做法

    Node.js中使用jQuery的做法

    在Node.js中使用jQuery的做法,需要先安裝jquery,npm install jquery ,安裝后的版本是 3.1.0,本文介紹的非常詳細,具有參考借鑒價值,感興趣的朋友一起看下吧
    2016-08-08

最新評論