Coding dex 冗余 page set es2017 else 图片下载 bin
以下代码有些冗余,大家捡核心看就好。
- // 内置http模块,提供了http服务器和客户端功能
- var http=require("http");
- // cheerio模块,提供了类似jQuery的功能
- var cheerio = require("cheerio");
- // 内置文件处理模块
- var fs=require(‘fs‘);
- // 请求参数JSON
- var options;
- // 请求并获得数据
- var req;
- // 存储页码
- var index=4;
- function downloadImg(pageNumber){
- console.log("开始读取第"+pageNumber+"页");
- // http://images2017.cnblogs.com/blog/162475/201709/162475-20170929115047356-360094413.png // 实际图片地址
- options={
- hostname:‘images2017.cnblogs.com‘,// 这里别加http://,否则会出现ENOTFOUND错误
- port:80,
- path:‘/blog/162475/201709/162475-20170929115047356-360094413.png‘,// 子路径
- method:‘GET‘,
- };
- req=http.request(options,function(resp){
- var imgData = "";
- resp.setEncoding("binary");
- resp.on(‘data‘,function(chunk){
- imgData+=chunk;
- });
- resp.on(‘end‘,function(){
- fs.writeFile("162475-20170929115047356-360094413.png", imgData, "binary", function(err){
- if(err){
- console.log("文件下载失败.");
- }
- console.log("下载成功");
- });
- });
- });
- // 超时处理
- req.setTimeout(5000,function(){
- req.abort();
- });
- // 出错处理
- req.on(‘error‘,function(err){
- if(err.code=="ECONNRESET"){
- console.log(‘socket端口连接超时。‘);
- }else{
- console.log(‘请求发生错误,err.code:‘+err.code);
- }
- });
- // 请求结束
- req.end();
- }
- // 包一层函数
- function start(i){
- downloadImg(i);
- }
- // 开始遍历
- start(index);
2017年9月30日10:31:31
Node.js 使用http客户端得到网站的图片下载到本地
来源: http://www.bubuko.com/infodetail-2331948.html