【问题标题】:How to download some images of a website directory [closed]如何下载网站目录的一些图像[关闭]
【发布时间】:2016-10-09 19:48:07
【问题描述】:

例如,我想从 ID 663500 下载图片到 665000 :

从这个 http://geo.static.traxsource.com/files/images/663500_large.jpghttp://geo.static.traxsource.com/files/images/665000_large.jpg

我该怎么做?

【问题讨论】:

  • 使用鼠标,指向您要下载的图像。现在右键单击该图像,然后在弹出的菜单中选择“另存为”或类似的东西。选择保存图像的位置,您就完成了。
  • 我觉得他要的是批量下载
  • @iWillGetBetter - 那么他应该更好地解释问题是什么,他使用什么语言,尝试过什么等等。
  • 根据标签,我认为他不知道该怎么做。你说得对,他应该解释已经尝试过的内容。
  • 如果你只是想要一个工具,看看 urltoys。它允许您编写例如fusk http://geo.static.traxsource.com/files/images/6[63500-66500]_large.jpg 然后get 这些文件。以编程方式,它应该只是一个 for 循环。

标签: javascript php html image


【解决方案1】:

我为你写了一个小脚本。这样,每秒都会下载一个新文件。

var url = "http://geo.static.traxsource.com/files/images/{num}_large.jpg";
var startnum = 663500;
var endnum = 665000;
var interval = 1 * 1000; //in MS

function downloadNext(num) {
  if (num < endnum) {
    setTimeout(function() {
      downloadNext(num + 1);
    }, interval)
  }
  var downUrl = url.replace("{num}", num);
  aDownload(downUrl, num + "_large.jpg");
}

downloadNext(startnum);

//CREDITS TO: http://stackoverflow.com/questions/9900289/initiate-downloads-with-a-javascript-function
function aDownload(url, name) {
  // Original code from https://github.com/eligrey/FileSaver.js
  // Rewrited to work without blobs
  // Will return true if worked
  var click, save_link, event;
  save_link = document.createElementNS("http://www.w3.org/1999/xhtml", "a")
  if (!("download" in save_link)) return false; // a[download] not supported on this browser
  save_link.href = url;
  save_link.download = name;
  event = document.createEvent("MouseEvents");
  event.initMouseEvent(
    "click", true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null
  );
  return save_link.dispatchEvent(event); // false if event was cancelled
}

【讨论】:

  • 可怕...多个下载对话框,跳过下载,因为 chrome 一次只能显示一个
  • @Endless 确实可以更好,但对于这个用户来说已经足够了。
【解决方案2】:

// using JSZip to save a bunch of stuff
var zip = new JSZip
var from = 663500
var to = 663510
// requires cors headers...
var corsProxy = 'https://crossorigin.me/'
var src = corsProxy + 'http://geo.static.traxsource.com/files/images/'

// append a bunch of file we want to download
for (; from < to; from++) {
  let name = from + '_large.jpg'
  let url = src + name
  zip.file(name, fetch(url).then(res => res.blob()))
}

// generate the zip content
zip.generateAsync({
  type: 'blob'
})
// download using FileSaver.js
.then(blob => saveAs(blob, 'example.zip'))
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.3/FileSaver.min.js"></script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-05
    • 1970-01-01
    • 2012-08-28
    • 2018-04-02
    • 1970-01-01
    • 1970-01-01
    • 2022-10-25
    • 1970-01-01
    相关资源
    最近更新 更多