下載網頁中的 pdf 各種姿勢,教你如何 carry 各種網頁上的 pdf 文件。
阿新 • • 發佈:2020-03-21
> 關聯詞: PDF 下載 FLASH 網頁 HTML 報告 內嵌 瀏覽器 文件 FlexPaperViewer swfobject pdf2swf 。
這個需求是最近幫一個學妹處理一下各大高校網站裡的 PDF 文件下載,又增加了無用的逆向知識 XD ,根據這些思路,可以有效的下載這類網站的文件檔案。
這需要你有點 HTML5 和 Flash 時代的基礎認知,順便能看 F12 的 network 、cache 等內容,推算真實地址等。
我從最簡單的說起,首先準備一個谷歌瀏覽器,有趣的是需要谷歌瀏覽器的列印功能,匯出到 PDF 上。
## 第一種樣本,是直接的 .pdf 該類直接下載即可,沒有難度。
- http://zjc.suda.edu.cn/_upload/article/files/5f/cd/6352cea9466b80a3677983aab1ef/72cd882e-8bf8-4021-9960-553ebc770e4d.pdf
![](https://img2020.cnblogs.com/blog/1641852/202003/1641852-20200321184037373-333276161.png)
## 第二種樣本,是現代 H5 + JS 內嵌 PDF 瀏覽器的方式。
屬於現代 H5 JS 的產物,需要用 F12 開發者工具看原始碼推斷 PDF 檔案路徑,接下來截圖舉例。
- http://www.nuaa.edu.cn/2020/0108/c295a192335/page.htm
![](https://img2020.cnblogs.com/blog/1641852/202003/1641852-20200321184245521-22402215.png)
對其右鍵選檢查,此時進入 F12 的 HTML 元素審查位置,可以找到它的定義程式碼。
![](https://img2020.cnblogs.com/blog/1641852/202003/1641852-20200321185423801-458457759.png)
仔細看標籤內容可以發現,存在 data-url="/_upload/article/files/3d/8d/78ed42f44031bcb6793b0eb27af1/8e6ad93b-4902-4fd8-bba5-bfabaf852885_1.png" 這類標籤。
![](https://img2020.cnblogs.com/blog/1641852/202003/1641852-20200321185605300-1817101051.png)
試圖搜尋(Ctrl + F)頁面內容中的 .pdf 檔案字尾,就會發現它的檔案源存在了 pdfsrc="/_upload/article/files/3d/8d/78ed42f44031bcb6793b0eb27af1/8e6ad93b-4902-4fd8-bba5-bfabaf852885.pdf" 。
![](https://img2020.cnblogs.com/blog/1641852/202003/1641852-20200321185739593-1949737693.png)
此時需要確定它的伺服器源,從而獲取真實地址,可以絕大概率是從這裡來的。
![](https://img2020.cnblogs.com/blog/1641852/202003/1641852-20200321185835389-1636912732.png)
因此地址改為 http://www.nuaa.edu.cn//_upload/article/files/3d/8d/78ed42f44031bcb6793b0eb27af1/8e6ad93b-4902-4fd8-bba5-bfabaf852885.pdf 就出來了。
![](https://img2020.cnblogs.com/blog/1641852/202003/1641852-20200321190007870-1564930580.png)
覺得還不太相信?那就再來一個。
- http://zjc.suda.edu.cn/88/5c/c5230a362588/page.htm
![](https://img2020.cnblogs.com/blog/1641852/202003/1641852-20200321184305424-567648672.png)
直接進 F12 直接搜 .pdf 直接找到源直接替換直接得到檔案路徑。
![](https://img2020.cnblogs.com/blog/1641852/202003/1641852-20200321190130702-387412397.png)
直接得到 http://zjc.suda.edu.cn//_upload/article/files/5f/cd/6352cea9466b80a3677983aab1ef/72cd882e-8bf8-4021-9960-553ebc770e4d.pdf 就是了。
![](https://img2020.cnblogs.com/blog/1641852/202003/1641852-20200321190300042-2129065839.png)
聰明的你學會了嗎?接著我們進入第三種樣本吧。
## 第三種樣本,舊時代的遺留產物 FLASH 下的 PDF 文件
這個需要一點程式設計基礎了,我之前思路走歪了,現代電腦已經不支援過去的 Flash 軟體了,我先是獲取了 swf 後試圖轉換圖片、反編譯其內容,但能夠在 Win10 上 work 的軟體已經不多了。
最後痛定思痛,想起,我是個程式猿鴨,為什麼要這麼耿直的使用工具呢?沒錯,我直接懟程式碼進去了,就可以解決了嘻嘻,接下來就是復現這個過程。
> 注意,針對 swf 轉 pdf 問題檔案,可以使用 github 的程式碼去實現,在這裡不過多提及,關鍵詞可以是 pdf2swf 和 FlexPaper 使用正向程式碼解決問題。
> 只是想起以前瀏覽器還可以直接讀取 flash swf 檔案的,不知道為什麼現在已經不支援了。
- http://job.neuq.edu.cn/content.jsp?urltype=news.NewsContentUrl&wbtreeid=1022&wbnewsid=1978&&tdsourcetag=s_pcqq_aiomsg
![](https://img2020.cnblogs.com/blog/1641852/202003/1641852-20200321184440970-1078046211.png)
從右鍵我們可以得知它是 flash 播放器,這個真的沒辦法通過 html 得到,那麼怎麼辦呢。
![](https://img2020.cnblogs.com/blog/1641852/202003/1641852-20200321190904892-1601503485.png)
搜尋 .pdf 或 .doc 都沒用了,根本得不到它的檔案,反而可以得到 swf 檔案,講道理,如果是早年間的電腦,相關工具應該還是可以解決問題的,如 swf2png 這類工具。
![](https://img2020.cnblogs.com/blog/1641852/202003/1641852-20200321191109753-451421480.png)
但是 win10 已經無法正常 work 了,那麼我在這個地方浪費了很久以後,仔細看了一下它的元件,對,就是 /system/resource/swf/FlexPaperViewer.swf 挺古老的東西了。
> 順便一提,谷歌瀏覽器將在 2020年12月終止 flash 元件。
那麼,正面轉換 swf 已經不現實了,我開始閱讀標籤程式碼,如下圖。
![](https://img2020.cnblogs.com/blog/1641852/202003/1641852-20200321191717719-347022486.png)
```html