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

相关文章
相关标签/搜索