描述
這是一個用於 Tampermonkey 或其他支援使用者指令碼的瀏覽器擴充套件的油猴指令碼。
看到論壇經常有小夥伴們需要下載某創力文件-某人文庫一些免費文件,但是相關網站瀏覽體驗不好各種廣告,各種登入驗證,需要很多步驟才能下載文件,該指令碼就是為了解決您的煩惱而誕生,儘可能做到自動化。
安裝
- 安裝 Tampermonkey 瀏覽器擴充套件。
- 點選 指令碼連結 或手動複製指令碼程式碼。
- 在 Tampermonkey 中建立一個新指令碼,將程式碼貼上到編輯器中並儲存。
原理說明
一般線上文件有以下幾種方式展示線上文件預覽功能:
- 將圖片繪製成畫布呈現
- 將二進位制資料繪製畫布
- 多種圖片拼接頁面渲染
- 直接圖片渲染頁面
所以該指令碼只是將畫布或圖片在瀏覽器渲染時進行下載拼接成PDF檔案,無法下載原始檔案,並非破解,只要是你瀏覽器可以看到就可以下載。宗旨就是你能看到多少,就能下載多少。
核心技術點解決一個文件由多個域名提供圖片,解決跨域問題。
以上兩個文件庫中的文件,大部分文件都是來自好幾個域名,並且有跨域問題,也就是說如果在當前頁面透過JavaScript
直接下載圖片會產生跨域
問題,這也是為什麼網上其他指令碼針對這兩個網站只能提供圖片下載地址,不能直接下載的根本原因。
解決跨域最簡單的辦法就是同源,在指令碼中動態新增 iframe
元素,通 iframe
內聯元素框架開啟當前圖片所在域名,將需要下載的圖片當 iframe
頁面內下載,再透過 postMessage
方法將Blob
資料傳回主頁面進行儲存。
當然也許有其他更好的辦法解決,此指令碼只是基於JavaScript進行處理,不借助額外第三方工具(下載,合併等exe檔案)處理為前提。
功能
實現功能
- 自動預覽頁面
- 匯出圖片地址
- 匯出PDF檔案
- 匯出PPTX檔案(每一幀畫面,每一頁素材)
- 匯出DOCX檔案PDF格式
指令碼功能說明
狀態 獲取地址 自動預覽 停止預覽 下載圖片 下載PDF
第一個展示當前操作狀態:預覽進度、下載進度。
第二個除了PPT,下載其他文件獲取對應的圖片地址連結。
第三個所有文件下載時需要先點選自動預覽功能
第四個與上面按鈕相反,就是停止預覽,可以先下載一部分檢查是否正確
第五個下載原始圖片到ZIP壓縮包中
第六個合併圖片匯出PDF檔案
示例
PPTX 示例
注意事項:
- 全屏預覽
- 不要縮小瀏覽器
- 示例文件
預覽效果圖
DOCX
預覽效果圖
授權
@license Apache-2.0
相容性
谷歌瀏覽器
注意事項
注意: 請確保遵循網站的使用條款和政策。自行承擔風險。
- 本指令碼完全免費。
- 僅供學習交流,嚴禁用於商業用途,請勿傳播下載的資料。
- 本指令碼所獲取的資源完全合法,與瀏覽器能直接獲得的資源一致,不存在逆向破解。
- 使用指令碼造成的影響由使用者承擔。