Node JS爬蟲: 阮老師網站背景圖

小白,輕噴,本文教你三分鐘入門爬蟲javascript

前言

有一天發現,阮一峯老師的博客圖片很好看,想收藏一下,由於幾百張,一張張下載太慢,朋友推薦了個谷歌插件(Fatkun)確實挺好用的,這以後就對爬蟲有了興趣,這個項目會整理一些簡單切實用的爬蟲代碼 crawler-img,都是基於 Node 實現。java

使用:node

  1. npm install
  2. 部分需求直接用 node 指令執行相應的 js 文件就能夠實現

簡單案例:爬取阮老師網站背景圖並保存本地

一句話介紹:request 模塊能夠簡化 Node 環境下的 http 請求操做,fs 是node 自帶的模塊,用來讀寫文件git

安裝依賴:github

npm install request --save

引入npm

let request = require('request');
let fs = require('fs');

核心代碼(其實總共也就這麼多~):併發

for (let i=1; i< 20; i++) {
    request(`http://www.ruanyifeng.com/images_pub/pub_${i}.jpg`).pipe(fs.createWriteStream(`img/${i}.png`))
}

要注意控制併發量,對調用頻率作個限制,改進以下async

function getImg(i, times){
  return new Promise(function(resolve, reject){
    setTimeout(function(){
      request(`http://www.ruanyifeng.com/images_pub/pub_${i}.jpg`).pipe(fs.createWriteStream(`img/${i}.png`))
      resolve();
    },times)
  })
  
}
async function loop() {
  for (let i=1; i<356; i++) {
    await getImg(i, 300); //每秒調用三次
  }
}
loop();

效果圖

總結

爬蟲入門是否是很簡單又好玩,你學會了嗎?oop

相關文章
相關標籤/搜索