真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

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

成都創(chuàng)新互聯(lián)是專業(yè)的紫陽網(wǎng)站建設公司,紫陽接單;提供網(wǎng)站設計、網(wǎng)站建設,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行紫陽網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

首先是依賴選擇:

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

代碼塊如下:

//引入依賴

//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');

爬取路徑:

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

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

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

初步實現(xiàn):

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

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

這里主要是我們直接確認一下需要的【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 看運行結(jié)果。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。


本文名稱:Node.js實現(xiàn)簡單的爬取的示例代碼
網(wǎng)頁地址:http://weahome.cn/article/pshopo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部