利用node来下载图片到本地
本文是针对于知道图片地址的下载图片方法。
同时也是我的处男作(额,怪怪的〜);不要在意这些细节。
最近在弄项目迁移,需要把http的链接全换成https的;以前的cms不支持http的协议,然后就需要迁移到新的服务器了;破屋还逢连夜雨,就在这个时候以前的cms登录帐号还被禁(tm逗我玩呢);
将还未迁移的图片更换到一个新的cms地址去,面临的第一个问题就是下载到本地;
图片十来张,一想就头大,正常的做法,第一意识就是一张张手动保存到本地;可是这样会特别烦〜
就在前一段时间有空,正好玩了一下node爬虫,想到正好可以利用这个功能把所有图片都load下来,再传到新cms,然后当晚就用上了,特别方便。感觉自己就是天才〜
额。bb的有点多了,再不上代码估计要被打了吧?
//依赖模块
var fs = require('fs');
var request = require("request");
var mkdirp = require('mkdirp');
var path = require('path'); //本地存储目录
var dir = path.join(__dirname + '/../images'); //创建目录
mkdirp(dir, function(err) {
if(err){
console.log(err);
}
}); // 图片下载地址
// 这个地址如果没有,可以换成spiderPic.js操作 var urlArr = [
'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/xiaoxiao1.jpg',
'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/xiaoxiao2.jpg',
'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/xiaoxiao3.jpg',
'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/xiaoxiao4.jpg',
'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/xinyidai1.jpg',
'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/xinyidai2.jpg',
'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/xinyidai3.jpg',
'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/xinyidai4.jpg',
'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/baodandai1.jpg',
'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/baodandai2.jpg',
'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/baodandai3.jpg',
'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/baodandai4.jpg',
'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/chedidai1.jpg',
'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/chedidai2.jpg',
'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/chedidai3.jpg',
'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/chedidai4.jpg'
]; // 主要方法,用于下载文件
var download = function(url, dir, filename){
request.head(url, function(err, res, body){
request(url).pipe(fs.createWriteStream(dir + "/" + filename));
});
}; urlArr.map(function(val) {
download(val, dir, val.split('daikuan/')[1]);
})
一种是在知道网页的情况下爬图片,第二种是知道图片地址直接下载图片如果有同学感兴趣node爬虫的,可以看下这个简单的爬虫:
https://github.com/yeeFlame/node_pro/tree/master/img-spider
目前还是在学习路上。写的不好还请多指教,共同进步!
利用node来下载图片到本地的更多相关文章
- php下载图片到本地
写了一天,就写了这么点代码,凑合用吧. #saveImage.php<?php /** * 图片下载方法,提供两种图片保存方式: * 1.按照图片自带的名称保存 * 2.按照自定义文件名保存 * ...
- 通过scrapy内置的ImagePipeline下载图片到本地、并提取本地保存地址
1.通过scrapy内置的ImagePipeline下载图片到本地 2.获取图片保存本地的地址 1.通过scrapy内置的ImagePipeline下载图片到本地 1)在settings.py中打开 ...
- scrapy中的ImagePipeline下载图片到本地、并提取本地的保存地址
通过scrapy内置到ImagePipeline下载图片到本地 在settings中打开 ITEM_PIPELINES的注释,并在这里面加入 'scrapy.pipelines.images.Imag ...
- 通过HttpURLConnection下载图片到本地--下载附件
一.背景说明 现在我做的系统中,需要有一个下载附件的功能,其实就是下载图片到本地中.相应的图片保存在多媒体系统中,我们只能拿到它的资源地址(url),而不是真实的文件. 这里记录的是下载单个图片.下篇 ...
- 利用Node 搭配uglify-js压缩js文件,批量下载图片到本地
Node的便民技巧-- 压缩代码 下载图片 压缩代码 相信很多前端的同学都会在上线前压缩JS代码,现在的Gulp Webpack Grunt......都能轻松实现.但问题来了,这些都不会,难道就要面 ...
- URL地址下载图片到本地
package test.dao; import eh.base.dao.DoctorDAO; import eh.entity.base.Doctor; import junit.framework ...
- vue2.0生成二维码图片并且下载图片到本地兼容写法
vue生成二维码图片,这里使用的是qrcode.js 这个插件(亲测写法,兼容没有问题) 第一步,下载插件 需要注意,这里下载的是qrcodejs2 cnpm install --save qrcod ...
- python实现通过URL下载图片到本地服务器
import os import urllib.request image_url = 'http://img.jingtuitui.com/759fa20190115144450401.jpg' f ...
- python3 中自带urllib库可下载图片到本地
刚从python3下载图片的语句python2的不太一样,具体python3语句如下: form urllib import request jpg_link = '......' #图片链接 re ...
随机推荐
- 基数排序 java 实现
基数排序 java 实现 Wikipedia: Radix sort geeksforgeeks: Radix sort 数学之美番外篇:快排为什么那样快 Java排序算法总结(八):基数排序 排序八 ...
- X86 Booting Sequence
1.BIOS 0xFFFF0 電源正常啟動後,x86 CPU 會先執行 0xFFFF0,也就是 BIOS ROM 的進入點.由於 0xFFFF0 ~ 0xFFFFF 只有少的很可憐的 16 bytes ...
- Spring之ClassPathResource加载资源文件
先看Demo: 1 @Test 2 public void testClassPathResource() throws IOException { 3 Resource res = new Clas ...
- 自己动手写ORM框架
提起ORM框架,大家都很熟悉,网上流行的ORM框架有很多,其中出名的有一些,不出名的更是数不胜数. 下面是自己实现的一个简单的ORM框架,实现了常用的增删查改功能,供大家研究ORM实现原理. 功能描述 ...
- 《编写可维护的JavaScript》——JavaScript编码规范(一)
缩进层级 代码如何缩进通常有两种主张: 使用制表符缩进 每一个缩进层级都用单独的制表符表示.这种方法的主要缺点是:系统对制表符的解释不一致.这些差异会导致不同的开发者对同一段代码有不同的看法的,这正是 ...
- phpMyAdmin的配置
好久没写东西了,上来记录一下今天学的一点小东西吧~ 之前搞php开发的时候,一直用的是SQLyog来操作mysql数据库的,但是今天发现sqlyog功能不是很完善,主要是我想修改数据库名,但是sqly ...
- 第七章 Hibernate性能优化
一对一关联 实体类关系 一对多 多对多 一对一 Hibernate提供了两种映射一对一关联关系的方式:按照外键映射和按照主键映射.下面以员工账号和员工档案表为例,介绍这两种映射方式,并使用这两种映射方 ...
- Android 进程常驻----native保活5.0以下方案推演过程以及代码
正文: 今天继续昨天,一鼓作气,争取这个礼拜全部写完. 上一篇文章留了一个别人的github链接,他里面的native保活实现方案也是大多数公司采用的方案. 我们先来讲一下他的方案. 他是首先开启一个 ...
- R-RMySQL包介绍学习
参考内容: RMySQL数据库编程指南R语言使用RMySQL连接及读写Mysql数据库 RMySql包安装和加载优点问题,试着根据提示简单安装和加载可以使用,后续再查询资料解决. 3.2.1 连接数据 ...
- VC++2013出现bug: 无法打开源文件“stdafx.h”
VC++2013出现bug: 无法打开源文件“stdafx.h” 1.首先需要把#include "stdafx.h"置于最头 2.在解决方案资源管理器中添加以下几个文件(附图下)