Node JS爬虫: 阮老师网站背景图
程序员文章站
2022-05-31 19:24:52
有一天发现,阮一峰老师的博客图片很好看,想收藏一下,因为几百张,一张张下载太慢,朋友推荐了个谷歌插件(Fatkun)确实挺好用的,这之后就对爬虫有了兴趣,这个项目会整理一些简单切实用的爬虫代码 **[crawler-img](https://github.com/mingjiezhou/crawle... ......
小白,轻喷,本文教你三分钟入门爬虫
前言
有一天发现,阮一峰老师的博客图片很好看,想收藏一下,因为几百张,一张张下载太慢,朋友推荐了个谷歌插件(fatkun)确实挺好用的,这之后就对爬虫有了兴趣,这个项目会整理一些简单切实用的爬虫代码 ,都是基于 node 实现。
使用:
- npm install
- 部分需求直接用 node 指令执行相应的 js 文件就可以实现
简单案例:爬取阮老师网站背景图并保存本地
一句话介绍:request 模块可以简化 node 环境下的 http 请求操作,fs 是node 自带的模块,用来读写文件
安装依赖:
npm install request --save
引入
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`)) }
要注意控制并发量,对调用频率做个限制,改进如下
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();
效果图
总结
爬虫入门是不是很简单又好玩,你学会了吗?
上一篇: mongodb 简单的增删改查