nodejs抓取网络图片转换为base64编码的图片

抓取网络图片需要加载http模块

//假定这是index.js文件

var http = require(‘http‘);

var url = ‘http://p0.meituan.net/tuanpic/3df525af5a3f7fe04077567d2a6caf794904.png‘;  //一张网络图片

http.get(url,function(res){
  var chunks = []; //用于保存网络请求不断加载传输的缓冲数据
  var size = 0;   //保存缓冲数据的总长度

  res.on(‘data‘,function(chunk){
    chunks.push(chunk);  //在进行网络请求时,会不断接收到数据(数据不是一次性获取到的),

                //node会把接收到的数据片段逐段的保存在缓冲区(Buffer),

                //这些数据片段会形成一个个缓冲对象(即Buffer对象),

                //而Buffer数据的拼接并不能像字符串那样拼接(因为一个中文字符占三个字节),

                //如果一个数据片段携带着一个中文的两个字节,下一个数据片段携带着最后一个字节,

                //直接字符串拼接会导致乱码,为避免乱码,所以将得到缓冲数据推入到chunks数组中,

                //利用下面的node.js内置的Buffer.concat()方法进行拼接

         
    size += chunk.length;  //累加缓冲数据的长度
  });

  

  res.on(‘end‘,function(err){

    var data = Buffer.concat(chunks, size);  //Buffer.concat将chunks数组中的缓冲数据拼接起来,返回一个新的Buffer对象赋值给data

    console.log(Buffer.isBuffer(data));    //可通过Buffer.isBuffer()方法判断变量是否为一个Buffer对象

    

    var base64Img = data.toString(‘base64‘);  //将Buffer对象转换为字符串并以base64编码格式显示

    console.log(base64Img);     //进入终端terminal,然后进入index.js所在的目录,在终端中输入node index.js;

                      //打印出来的就是图片的base64编码格式,如下面所示                   

  });

});

抓取网络图片后转换为base64编码格式,格式如下:

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

Question:

1:把图片转换为base64编码有什么用?

2:转换后的base64编码怎么使用?

Answer:

1.将图片转换为base64编码可以实现网页图片在网速不好的时候先于内容加载和减少http的请求次数来减少服务器的负担;

2.使用方法(以png为例),上面一大坨的编码简写为abc

  background:url("data:image/png;base64,abc")  no-repeat;

  假如转换的是其他格式的图片(如gif)则改写成background:url("data:image/gif;base64,abc")  no-repeat;

时间: 2024-10-12 13:12:07

nodejs抓取网络图片转换为base64编码的图片的相关文章

NodeJS抓取Web页面的编码问题

最近在做毕设需要用到的爬虫系统,页面抓取这一块使用的是NodeJS语言,在最开始写的页面抓取的程序中,针对gb2312编码的页面保存完后显示的是乱码,开始认为在用Java读取文件时进行一个编码转换工作就可以解决了,但是试了半天,编码只会越来越慢,后来猜想,NodeJS请求到的页面的Body传输过来的是二进制的流信息,如果采用错误的编码方式对二进制信息进行解码,那么得到的结果坑定是错误的,再将这种结果保存到文件中,结果肯定还是错的,所以,通过上述的方法,不可能得到正确的结果. 后来的解决方法是,在

Javascript 将图片的绝对路径转换为base64编码

Javascript将图片的绝对路径转换为base64编码 我们可以使用canvas.toDataURL的方法将图片的绝对路径转换为base64编码:在这我们引用的是淘宝首页一张图片如下: var img = "https://img.alicdn.com/bao/uploaded/TB1qimQIpXXXXXbXFXXSutbFXXX.jpg"; 我们如下编写代码: function getBase64Image(img) { var canvas = document.create

图片流Base64编码 转图片

using System; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Web; namespace OnlinePhotoCapture {     /// <summary>     /// 将图片base64字符串原还原为图片并调整尺寸后保存(by 菩提树下的杨过http://yjmyzz.cnblogs.com/)       /// </summary>

浅析用Base64编码的图片优化网页加载速度

想必大家都知道网页加载的过程,从开始请求,到加载页面,开始解析和显示网页,遇到图片就再次向服务器发送请求,加载图片.如果图片很多的话,就会产生大量的http请求,从而影响页面的加载速度.所以现在有一种做法是将多张图片合并到一起,这样在打开页面的时候只需要一次http请求就可以加载多张图片,然后通过设置图片的背景偏移量来正确的显示.现在我们可以将图片转成base64编码,然后直接写在html页面或者css里面,这样在加载页面或者css的时候就可以直接将图片加载过去,这样也省去了设置图片背景偏移量带

python3抓取异步百度瀑布流动态图片(二)get、json下载代码讲解

制作解析网址的get 1 def gethtml(url,postdata): 2 3 header = {'User-Agent': 4 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0', 5 'Referer': 6 'http://image.baidu.com', 7 'Host': 'image.baidu.com', 8 'Accept': 'text/plain, */*; q=0

BASE64编码的图片在网页中的显示问题的解决

BASE64编码的图片在网页中的显示问题的解决 关于图片的Base64编码,你了解吗?

c#实现抓取高清美女妹纸图片

代码如下: private void DoFetch(int pageNum) { ThreadPool.QueueUserWorkItem(_ => { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(" 美女摄影?page=" + pageNum); request.Credentials = System.Net.CredentialCache.DefaultCredentials; HttpWebRes

Android开发 - ImageView加载Base64编码的图片

在我们开发应用的过程中,并不是所有情况下都请求图片的URL或者加载本地图片,有时我们需要加载Base64编码的图片.这种情况出现在服务端需要动态生成的图片,比如: 二维码 图形验证码 ... 这些应用场景有个共同点就是,这些图片都是由服务器动态生成,并不需要生成后保存成文件再返回给客户端. Android中ImageView加载Base64图片其实非常简单,并不需要引入第三方库,方法如下: import android.util.Base64; # 代码片段 String base64 = "d

Python爬虫技术干货,教你如何实现抓取京东店铺信息及下载图片

什么是Python爬虫开发 Python爬虫开发,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止.世界上80%的爬虫是基于Python开发的,学好爬虫技能,可为后续的大数据分析.挖掘.机器学习等提供重要的数据源. Python爬虫实例参考 这是一个用Python爬虫实现抓取京东店铺信息以及下载图片的例子,仅供参考. 信息抓取: 图片下载的:注意: 1.在选择信息的时候用CS