背景:
我是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手动下载?
答案 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),我必须通过按Allow
: