zoukankan      html  css  js  c++  java
  • Node JS爬虫: 阮老师网站背景图

    小白,轻喷,本文教你三分钟入门爬虫

    前言

    有一天发现,阮一峰老师的博客图片很好看,想收藏一下,因为几百张,一张张下载太慢,朋友推荐了个谷歌插件(Fatkun)确实挺好用的,这之后就对爬虫有了兴趣,这个项目会整理一些简单切实用的爬虫代码 crawler-img,都是基于 Node 实现。

    使用:

    1. npm install
    2. 部分需求直接用 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();
    

    效果图

    总结

    爬虫入门是不是很简单又好玩,你学会了吗?

  • 相关阅读:
    方法重载
    构造方法:(特殊方法,用来创建对象 没写就会默认有构造方法)
    java:第十二章
    java:第九章
    java:第十四章
    java:第十五章
    java:第十一章
    I/O小结
    java:第八章
    java:第六章
  • 原文地址:https://www.cnblogs.com/zhoumingjie/p/11950322.html
Copyright © 2011-2022 走看看