通过 Chrome 浏览器,获取到需要下载的元素的 url,控制台进行下载。
本次以 https://www.mayiwenku.com/p-17989373.html 该网站为例,下载文档图片

下载函数

控制台上写好下载函数:download,有两个参数,url 下载的地址,filename 保存的文件名称

  1. function download(url, filename) {
  2. var $a = document.createElement('a');
  3. $a.setAttribute("href", url);
  4. $a.setAttribute("download", filename);
  5. var evObj = document.createEvent('MouseEvents');
  6. evObj.initMouseEvent( 'click', true, true, window, 0, 0, 0, 0, 0, false, false, true, false, 0, null);
  7. $a.dispatchEvent(evObj);
  8. }

获取需要下载的对象的 url 等信息

使用 js 选择器,选中所有需要关注的对象,比如本次的 document.querySelectorAll(“.inner_page img”) 选中所有的图片。

控制台运行,下载

  1. Array.prototype.slice.call(document.querySelectorAll(".inner_page img"),90,100).forEach(x=>download(x.src, x.alt+".gif"))

简单说,就是运行一下 download 函数。

注意

  1. Chrome 一般会弹出是否允许多个下载,需要点击允许。
  2. 并发不能太高,上面的我只好切片,防止后续的请求丢失(至于有没有其他办法,没研究)。