从数组下载图像

时间:2018-11-09 21:08:15

标签: javascript

背景:

我是JS的新手(本周开始学习),并且一直在以下网站上使用Chrome开发工具和控制台:https://www.pokemon.com/us/pokedex/

我进入了开发工具元素选择器,并使用class =“ results”找到了它,基本上是列出的所有神奇宝贝。

我编辑了标签以包含一个id(id =“ poke”),以便可以使用它。

以下是我的代码,该代码输出包含所有指向神奇宝贝图像资产的链接的数组:

function listPokemon(){
    var pokeAssets = document.getElementById('poke').getElementsByTagName('img');
    var i;
    for (i = 0; i < pokeAssets.length; i++) {
        console.log (pokeAssets[i]);
    }
} 

问题:

有没有一种方法可以从该阵列下载所有图像资产,而不必使用原始javascript手动下载?

2 个答案:

答案 0 :(得分:1)

快速答案是“否”,javascript不能真正将文件下载到您的计算机上。 您实际上并不需要JS来获取图像URL,因为每个URL都是以神奇宝贝pokedex编号开头的相同URL

https://assets.pokemon.com/assets/cms2/img/pokedex/detail/004.png 004是宠物小精灵编号

您可以使用python脚本来迭代此数字,该脚本可以下载图像。

答案 1 :(得分:0)

一个人可以用所有绝对链接创建一个数组。然后创建一个临时锚标签<a>,将图像作为源。然后使用click事件下载它。但是,您的浏览器必须为compatible

var links = [ "https://assets.pokemon.com/assets/cms2/img/pokedex/detail/001.png", "https://assets.pokemon.com/assets/cms2/img/pokedex/detail/002.png"]
function download(uri, name) {
    var link = document.createElement("a");
    link.download = name;
    link.href = uri;
    link.click();
}
var counter = 0;
for (i = 0; i < links.length; i++) 
{ 
    download(links[i], "pokemon "+ counter);
    counter++;
}

我第一次对此进行谴责时,被导航到pokemon.com的网站。当我在开发人员控制台中尝试使用它时(chrome版本70.xxx),我必须通过按AllowFirst time i ran this script 2nd time while on their website

表示同意。