| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- var fs = require('fs');
- var request = require("request");
- var path = require('path');
- var src = "https://miscrofile.oss-cn-hangzhou.aliyuncs.com/root/question/data_structure2020/2020数据结构(第2章)/image3.png";
- content=fs.readFileSync("output.json", "utf8");
- list1 = content.match(/https:\/\/miscrofile.oss-cn-hangzhou.aliyuncs.com\/([^.]+)\.([a-zA-Z0-9]+)/g);
- list2 = content.match(/https:\/\/miscrofile.oss-cn-hangzhou.aliyuncs.com/g);
- writeFile(list1,0,null)
- function writeFile(uriList,num){
- let uri=uriList[num];
- let pathString=uri.replace("https://miscrofile.oss-cn-hangzhou.aliyuncs.com/","");
- dir=pathString.replace(/([^\/]+)\.([a-zA-Z0-9]+)/,"");
- if(dir.charAt(dir.length-1)==="/"){
- dir=dir.slice(0,dir.length-1)
- }
- mkdirsSync(dir);
- if(fs.existsSync(pathString)){
- // console.log("N:"+num+" 已经存在");
- num++;
- if(num<uriList.length){
- writeFile(uriList,num);
- }
- return;
- }
- let writeStream = fs.createWriteStream(pathString);
- let option={
- url:encodeURI(uri),
- headers: {
- "Referer": "http://neep.learncoder.com/content/practice/practice?id=116&name=%E7%BD%91%E7%BB%9C%E5%B1%82",
- "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36"
- },
- }
- let readStream = request(option)
-
- readStream.pipe(writeStream);
- readStream.on('end', function() {
- // console.log('文件下载成功');
- });
- readStream.on('error', function(err) {
- console.log("N:"+num+" 失败 "+err);
- num++;
- if(num<uriList.length){
- writeFile(uriList,num);
- }
- })
- writeStream.on("finish", function() {
- console.log("N:"+num+" 成功 "+uri);
- writeStream.end();
- num++;
- if(num<uriList.length){
- writeFile(uriList,num);
- }
- });
- }
- // let writeStream = fs.createWriteStream('image.png');
- // let readStream = request(option)
- // readStream.pipe(writeStream);
- // readStream.on('end', function() {
- // console.log('文件下载成功');
- // });
- // readStream.on('error', function(err) {
- // console.log("错误信息:" + err)
- // })
- // writeStream.on("finish", function() {
- // console.log("文件写入成功");
- // writeStream.end();
- // });
- function mkdirsSync(dirname) {
- if (fs.existsSync(dirname)) {
- return true;
- } else {
- if (mkdirsSync(path.dirname(dirname))) {
- fs.mkdirSync(dirname);
- return true;
- }
- }
- }
|