我有大量的画廊我想下载,我知道序列中最后一个图像文件的名称,但我不确定我将如何创建一系列图像链接以供使用下载管理器。
目前我在文本文件中有 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:
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 模式并将生成的链接写入另一个文本文件。希望这有帮助:)