最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)站的基本構成

這里主要是我們直接確認一下需要的【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ù)而導致數(shù)據(jù)丟失

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

    });

  }

}

 

//主函數(shù)

util.main();

然后就可以運行 node xxx.js 看運行結果。

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

相關文章

  • Nodejs之TCP服務端與客戶端聊天程序詳解

    Nodejs之TCP服務端與客戶端聊天程序詳解

    這篇文章主要為大家詳細介紹了Nodejs之TCP服務端與客戶端聊天程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • nodejs實現(xiàn)黑名單中間件設計

    nodejs實現(xiàn)黑名單中間件設計

    最近寫的項目中涉及到防止灌水的功能,于是設計了黑名單中間件,跟大家分享一下,同時也希望大家有好的建議能夠拍磚.
    2014-06-06
  • yarn的安裝及使用詳解

    yarn的安裝及使用詳解

    Yarn 就是一個類似于 npm 的包管理工具,它是由 facebook 推出并開源,與 npm 相比,yarn 有著眾多的優(yōu)勢,主要的優(yōu)勢在于:速度快、離線模式、版本控制,這篇文章主要介紹了yarn的安裝及使用教程,需要的朋友可以參考下
    2022-08-08
  • 淺談Node新版本13.2.0正式支持ES Modules特性

    淺談Node新版本13.2.0正式支持ES Modules特性

    這篇文章主要介紹了淺談Node新版本13.2.0正式支持ES Modules特性,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • 詳解本地Node.js服務器作為api服務器的解決辦法

    詳解本地Node.js服務器作為api服務器的解決辦法

    本篇文章主要介紹了詳解本地Node.js服務器作為api服務器的解決辦法,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • npm dose not support Node.js v10.15.3的解決方法

    npm dose not support Node.js v10.15

    這篇文章主要給大家介紹了關npm dose not support Node.js v10.15.3的解決方法,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-11-11
  • Node.js抓取中文網(wǎng)頁亂碼問題和解決方法

    Node.js抓取中文網(wǎng)頁亂碼問題和解決方法

    這篇文章主要介紹了Node.js抓取中文網(wǎng)頁亂碼問題和解決方法,本文講解了使用一些開源庫解決抓取中出現(xiàn)的亂碼問題,需要的朋友可以參考下
    2015-02-02
  • Centos7 中安裝 Node.js v4.4.4

    Centos7 中安裝 Node.js v4.4.4

    我一直對學習Node.js比較感興趣。這是一個Java平臺的服務器端編程 ,它允許開發(fā)人員在服務器編寫Java代碼,并且有許多CentOS的用戶正努力學習這個語言的開發(fā)環(huán)境。這正是我想做這個教程的目的。
    2016-11-11
  • 詳解Node.Js如何處理post數(shù)據(jù)

    詳解Node.Js如何處理post數(shù)據(jù)

    這篇文章給大家介紹了如何利用Node.Js處理post數(shù)據(jù),文中通過實例和圖文介紹的很詳細,有需要的小伙伴們可以參考借鑒,下面來一起看看吧。
    2016-09-09
  • Node.js中使用mongoskin操作mongoDB實例

    Node.js中使用mongoskin操作mongoDB實例

    這篇文章主要介紹了Node.js中使用mongoskin操作mongoDB實例,Mongous是一個輕量級的nodejs mongodb驅動,需要的朋友可以參考下
    2014-09-09

最新評論

遂宁市| 繁昌县| 常州市| 金阳县| 马尔康县| 盱眙县| 江孜县| 井冈山市| 台州市| 会理县| 文山县| 娄底市| 宣恩县| 海南省| 金平| 浪卡子县| 台江县| 仙居县| 平远县| 苍南县| 栾川县| 台北市| 宁陵县| 盐津县| 山东省| 吉林省| 浑源县| 贺兰县| 新沂市| 吐鲁番市| 深水埗区| 时尚| 盈江县| 武鸣县| 榕江县| 大安市| 临泽县| 琼海市| 泾川县| 杂多县| 湖北省|