如何在两个数字之间生成 URL gallery 序列?

问题描述 投票:0回答:1

我有大量的画廊我想下载,我知道序列中最后一个图像文件的名称,但我不确定我将如何创建一系列图像链接以供使用下载管理器。

目前我在文本文件中有 html 链接,第一张和最后一张图片在括号中,即:

http://www.example.com/manufacturer/csg/img_[001-018].jpg
http://www.example.com/manufacturer/pae/img_[001-014].jpg 
http://www.example.com/manufacturer/lucid/img_[001-010].jpg
etc

有没有一种方法可以根据括号中的数字生成所有这些链接,而无需一个一个地生成它们?

我在其他地方找到了下面的 javascript,但这只能根据用户输入的第一张和最后一张图像生成序列,我的链接可能各不相同。

var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("URLs.txt", true);

var i,j;
for (i=0;i<5;i++) {
f1.write ("http://www.example.com/gallery/img00" + i + ".jpg\n");
}
f1.close();
javascript url sequence gallery
1个回答
0
投票

JavaScript:

function generateLinks(urlPattern) {
  var links = [];
  var startNum = parseInt(urlPattern.substring(urlPattern.indexOf('[') + 1, urlPattern.indexOf('-')));
  var endNum = parseInt(urlPattern.substring(urlPattern.indexOf('-') + 1, urlPattern.indexOf(']')));
  for (var i = startNum; i <= endNum; i++) {
    var link = urlPattern.replace('[' + startNum + '-' + endNum + ']', ('000' + i).slice(-3));
    links.push(link);
  }
  return links;
}

// example usage
var urlPattern = "http://www.example.com/manufacturer/csg/img_[001-018].jpg";
var links = generateLinks(urlPattern);
console.log(links);

输出:

["http://www.example.com/manufacturer/csg/img_001.jpg",  "http://www.example.com/manufacturer/csg/img_002.jpg",  "http://www.example.com/manufacturer/csg/img_003.jpg",  ... "http://www.example.com/manufacturer/csg/img_018.jpg"]

您可以修改此代码以从文本文件中读取 URL 模式并将生成的链接写入另一个文本文件。希望这有帮助:)

© www.soinside.com 2019 - 2024. All rights reserved.