リンクのPDFファイルをzipしてダウンロード

    @@ -36,7 +36,7 @@ }; - for ( let target of document.querySelectorAll('a[href$=".pdf"] ') ) {await downloader(target).catch(()=>{})}; + for ( let target of document.querySelectorAll('a[href*=".pdf"] ') ) {await downloader(target).catch(()=>{})}; const content = await zip.generateAsync({type:"blob"}); saveAs(content, 'files.zip');
  • /*
     * @title リンクのPDFファイルをzipしてダウンロード
     * @description ~.PDFというリンクから、ファイルをダウンロードしてzipします。
     * @include http://*
     * @license MIT License
     * @javascript_url
     */
    
    
    (async ()=>{
      function _import(s){
        return new Promise(function(resolve){
          const script = document.createElement('script');
          script.src = s;
          script.onload = function(){
            resolve();
          };
          document.head.appendChild(script);
        })
      };
      
      const sleep = time => new Promise(resolve=>setTimeout(resolve,time));
      await import('https://cdnjs.cloudflare.com/ajax/libs/jszip/3.2.0/jszip.min.js');
      await _import('https://cdn.jsdelivr.net/npm/file-saver@2.0.2/dist/FileSaver.min.js');
        
      const  zip = new JSZip();
      
      async function downloader(element){
        const response = await fetch(
          element.href,
        );
        element.style.backgroundColor = 'gray';
        await sleep(2000);
    
        zip.file('files/'+element.textContent.trim(), await response.blob());
       
      };
    
      for ( let target of document.querySelectorAll('a[href*=".pdf"] ') ) {await downloader(target).catch(()=>{})};
    
      const content = await zip.generateAsync({type:"blob"});
      saveAs(content, 'files.zip');
      
    })()
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2021/05/11 11:55:06 - 05/11
  2. 2020/10/21 17:59:00 - 2020-10-21
  3. 2020/02/07 14:06:17 - 2020-02-07
  4. 2020/02/05 15:53:15 - 2020-02-05
  5. 2020/02/04 18:07:05 - 2020-02-04
  6. 2020/02/04 17:51:38 - 2020-02-04
  7. 2020/01/11 10:34:49 - 2020-01-11