利用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 ...
随机推荐
- getStyle(obj, attr)兼容获取css
设置元素(element)的css属性值可以用element的style属性,dom.style.attr 这样或取得到的值大多数是undefined:何解? dom.style.attr 是用来 ...
- C#如何反射出委托的签名,如何使用反射调用委托
本文阐述C#中如何反射出委托的签名,假如我们有委托FooDelegate定义如下 delegate double FooDelegate (string param, bool condition); ...
- Xcode 8.2 想使用插件 怎么办? 教你科学的使用插件
楼主属于重度插件依赖党之前装了XcodeGr8 不过每次打开xcode第一次执行cmd+s保存的时候,会卡住很长时间,导致我很不爽[ 虽然使用https://github.com/fpg1503/Ma ...
- 【单点登录】【两种单点登录类型:SSO/CAS、相同一级域名的SSO】
单点登录:SSO(Single Sign On) 什么是单点登录:大白话就是多个网站共享一个用户名和密码的技术,对于普通用户来说,只需要登录其中任意一个网站,登录其他网站的时候就能够自动登陆,不需要再 ...
- 基于bootstrap 的datatable插件的使用(php版)
Datatables是一款jquery表格插件.它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能.详细学习请参考其官网:http://datatables.net/中文网:http:/ ...
- STM32的USART中断死循环,形成死机。
作者:观海 QQ:531622 直接说重点:我用的是 STM32F103 芯片 USART2_IRQHandler 总是中断,程序死循环. 1.出现问题: 原程序的中断处理程序是: void USA ...
- jquery常用插件及用法总结
http://www.jb51.net/Special/200.htm
- CAS 集群部署session共享配置
背景 前段时间,项目计划搞独立的登录鉴权中心,由于单独开发一套稳定的登录.鉴权代码,工作量大,最终的方案是对开源鉴权中心CAS(Central Authentication Service)作适配修改 ...
- GoLang语言
1 Go语言基础 1.1 语法详解 1.1.1 注释 /* regexp 包为正则表达式实现了一个简单的库. 该库接受的正则表达式语法为: 正则表达式: 串联 { '|' 串联 } 串联: { 闭包 ...
- Oracle数据库的表结构 简单表的建立