們在搜索資料的時(shí)候會(huì)看到一些非常有用的資料,但往往這些資料都是付費(fèi)資料。只能看一部分,不能直接復(fù)制下來。如果要直接下載,那只能付費(fèi)下載。今天就教大家一個(gè)方法,可以免費(fèi)復(fù)制付費(fèi)文檔資料。一分鐘學(xué)會(huì),看懂能讓你少花很多錢。這個(gè)小技巧建議大家收藏,以免找不到。下面大家跟著我一步步做吧!
如何免費(fèi)復(fù)制付費(fèi)文檔資料
首先我們打開某度文檔,在里面搜索到了一篇文章,文檔顯示需要VIP專享才可以下載。在這里如果我們直接復(fù)制這里的文字,就是彈出一個(gè)對(duì)話框,顯示文檔復(fù)制為VIP權(quán)益,開通VIP可繼續(xù)復(fù)制。
彈出的vip窗口
重點(diǎn)來了,我們在頁面的空白處點(diǎn)擊右鍵,并打開檢查選項(xiàng)。這檢查功能太重要了,里面我們可以看到該網(wǎng)頁的源代碼。這個(gè)一般是前端開發(fā)人員經(jīng)常用到的功能,不僅可以調(diào)試各種樣式參數(shù),還可以看數(shù)據(jù)傳遞性能。
檢查選項(xiàng)
我們找到設(shè)置按鈕(如下圖的紅色圈標(biāo)注的地方),對(duì)頁面的首選項(xiàng)(preferences)進(jìn)行設(shè)置。
設(shè)置按鈕
下拉找到調(diào)試程序(Debugger)選項(xiàng),將禁用Javascript(Disable Javascript)進(jìn)行勾選。
勾選禁止JavaScript按鈕
不要關(guān)閉檢查窗口,我們發(fā)現(xiàn)原來我們打開的頁面文章選中后已經(jīng)可以復(fù)制了。大功告成。是不是很簡單。大家學(xué)會(huì)了嗎?
大功告成
這個(gè)免費(fèi)復(fù)制的原理就是禁用網(wǎng)頁的頁面Javascript代碼。缺點(diǎn)也是非常明顯,就是不能直接復(fù)制圖片或者特殊文字代碼等。所以,如果大家需要完整的文檔最好還是付費(fèi)購買吧。
1.如果用這個(gè)辦法不能復(fù)制,可能就是原來資料本身就是不可編輯的資料,比如別人就是以圖片形式上傳的資料。
2.尊重別人的勞動(dòng)成果,不可將別人的資料直接應(yīng)用到自己的作品中。只可用于個(gè)人學(xué)習(xí)之用。
3.由于平臺(tái)打擊各種第三方工具下載,以前的很多工具(網(wǎng)站)已經(jīng)失效,如果有購買的需謹(jǐn)慎。
注:我是秦韻莞香,和你聊聊日常的數(shù)碼科技、互聯(lián)網(wǎng)趣聞,每天一更,歡迎關(guān)注。原創(chuàng)文章,未經(jīng)授權(quán)不得轉(zhuǎn)載,侵權(quán)必究。
網(wǎng)頁下載下來使用,在日常工作中使用頻率還是很高的,有時(shí)候確實(shí)能解一時(shí)之急,我自己就有很窘迫的經(jīng)歷。
我開會(huì)的時(shí)候,都會(huì)把準(zhǔn)備好的文檔存在局域網(wǎng),到會(huì)議室直接打開就能直接用了。有一次到分公司,由于分公司剛剛成立,內(nèi)網(wǎng)還沒有和母公司連通。結(jié)果這下子懵逼了,上不去內(nèi)網(wǎng),看不到文檔。又是叫同事發(fā)過來,又是提發(fā)送文件的安全申請(qǐng),讓人著急。
如果把網(wǎng)站保存下來,放在自己的電腦中,既不用擔(dān)心信息泄露問題,又不用為了看不了文檔而著急。
遇到問題,記錄下來,然后解決問題,程序員的解決思路永遠(yuǎn)是自己創(chuàng)造輪子的,接下來就是不斷的探索解決方案。
其實(shí)下載網(wǎng)頁的方式有很多種,其中有幾種辦法使用的比較多,例如:如果你用Chrome,直接按 Ctrl+s 就可實(shí)現(xiàn)。使用這種方法,Chrome會(huì)把整個(gè)網(wǎng)站,按照編譯完成的源碼目錄結(jié)構(gòu)保存下來。像下面這樣:
下載完成的文件直接點(diǎn)擊 xxx.html 可以直接離線訪問,但是這種方式對(duì)目錄的依賴結(jié)構(gòu)比較高,怎么理解呢?就是 html 文件和對(duì)應(yīng)文件名的文件夾必須在同一個(gè)目錄中,才能正常使用。拷貝到其他機(jī)器的時(shí)候必須要兩個(gè)同時(shí)拷貝才可以,否則就會(huì)排版錯(cuò)亂。
如果有十個(gè)或者更多的網(wǎng)頁需要拷貝或者刪除,就會(huì)很麻煩,例如我想在其中找到其中幾個(gè),復(fù)制到其他地方,很容易弄錯(cuò)順序。
HTML 是一種純文本格式,它用于排版文字。純文本文檔的意思就是,文檔中只包含文字內(nèi)容,不包含二進(jìn)制內(nèi)容,舉個(gè)例子:打印出的A4紙,只有文字沒有圖片。而 HTML 想要顯示照片等二進(jìn)制信息,通常都會(huì)鏈接到其他文件,也就是上面文件夾里面的內(nèi)容。
不過 Chrome 下載文件這種方式也有優(yōu)點(diǎn),下載下來的文件可以保持獨(dú)立性,比如說,我需要這個(gè)網(wǎng)頁中的一張圖片,那么就可以直接到文件夾里面尋找了。
另外還有一種辦法,也有很多人再使用。Chrome 在打印網(wǎng)頁的時(shí)候,會(huì)把網(wǎng)頁轉(zhuǎn)成 PDF ,然后在進(jìn)行打印。那么就給我們提供了很明確的思路,把網(wǎng)頁直接保存為 PDF ,這樣保存下來的網(wǎng)頁就只有一個(gè)文件。
使用Chrome,直接按下Ctrl+p就可以。然后目標(biāo)打印機(jī)選擇 另存為 PDF 。
這個(gè)功能很多瀏覽器都支持
但是這種辦法也有很明顯的缺點(diǎn),由于 PDF 是靜態(tài)文檔,網(wǎng)頁上的一些動(dòng)畫可能不會(huì)正常顯示,而且排版也有可能會(huì)錯(cuò)亂,這完全靠運(yùn)氣。個(gè)人覺得這不是一種很靠譜的方法。
這時(shí)候主角來了!有一個(gè)工具既可以把網(wǎng)頁保存為 html 又可以保持是單文件。他就是 monolith ,你可以在 github 上面找到它,但是源碼并沒有編譯為可執(zhí)行文件,我把它編譯了一下,下面會(huì)放上來鏈接,https://github.com/leconio/Repos/raw/master/monolith.7z。
那么下面就簡單說說使用方法:如果你下載我的鏈接,那么里面有三個(gè)文件:
第一個(gè)是Mac平臺(tái)編譯出來的,使用方式為:
./monolith 網(wǎng)站地址 > xxx.html
默認(rèn)情況下 monolith 會(huì)把生成的 html 輸出到標(biāo)準(zhǔn)輸出流,也就是當(dāng)前終端。使用 > 我們把輸出的內(nèi)容重定向并覆蓋到文件。
執(zhí)行完成之后,在這個(gè)目錄下面就會(huì)有一個(gè)對(duì)應(yīng)的文件:xxx.html 。
另外兩個(gè)是 Windows 平臺(tái)使用的。為了簡化使用,我寫了一個(gè) CMD 腳本。直接點(diǎn)擊 monolith.cmd ,然后粘貼地址就可以完成下載。
下載完成之后,在本地你會(huì)發(fā)現(xiàn)只有一個(gè) html 文件。我們打開之后,發(fā)現(xiàn)圖片和JS等信息都在,而且排版正常。那么就要思考了,我們之前說過,HTML 是放置純文本信息的,那么圖片在哪里呢?
答案顯而易見,就在 HTML 文件里面。為了方便小圖片傳輸,有一種叫 Base64 的東西,它可以把二進(jìn)制信息變成成純文本。這在使用 Json 傳遞數(shù)據(jù)的今天十分常見,它可以減少一次請(qǐng)求(題外話),這里就是用的這個(gè)原理。monolith 把圖片等二進(jìn)制內(nèi)容轉(zhuǎn)為了純文本,保存在 HTML 文件中。我們在下載的文件源碼可以看到:
對(duì)比源代碼,src 信息已經(jīng)變成了 base64 格式的圖片,就是那串亂碼。復(fù)制那串亂碼,從網(wǎng)上搜一個(gè) base64 轉(zhuǎn)圖片工具,粘貼進(jìn)去,這時(shí)會(huì)發(fā)現(xiàn)就是我們看到的那張圖片。這樣一來,無論這個(gè)網(wǎng)站上有多少個(gè)文件,都會(huì)保存到一個(gè) HTML 文件里面,而且還能離線使用。
當(dāng)然,base64 編碼的圖片比原生圖片略大,這可能也是你現(xiàn)在在擔(dān)心的問題。不過 monolith 會(huì)特殊處理文件體積。我們可以看看 Chrome 直接下載和使用 monolith 下載體積相差多少。我們把兩種方式下載的網(wǎng)頁都進(jìn)行了 7-Zip 壓縮。
我們可以看到,使用 monolith 下載會(huì)比 Chrome 直接下載小一倍還多!
最后要說的是局限性,無論那種方法,都幾乎不能把視頻網(wǎng)站中的視頻下載下來。因?yàn)楝F(xiàn)在的視頻地址都是 Token 加密的,同理,使用 Token 加密的其他請(qǐng)求信息也無法下載。
比如你可以試試下載其他網(wǎng)站的首頁,Logo 和視頻都是下載不了的。但是也有解決辦法,那就是另外一個(gè)領(lǐng)域的事情了,以后有機(jī)會(huì)說給大家聽。
如果這篇文章對(duì)您或者您的朋友有幫助,感謝您關(guān)注,轉(zhuǎn)發(fā)。
換流的作用就是將我們的字節(jié)流轉(zhuǎn)換成字符流
字節(jié)流是可以處理一切內(nèi)容的,包括圖片,音頻,視頻,也包括純文本,在很多系統(tǒng)和框架的底層返回給我們的都是字節(jié)流(有時(shí)候我們使用字節(jié)流處理并不方便,這就是我們?yōu)槭裁匆D(zhuǎn)換字符流的原因)
System.in,System.out都是字節(jié)流,因?yàn)槲覀冩I盤輸入還是輸出的都是字符串,所以我們可以對(duì)它進(jìn)行轉(zhuǎn)換。
在我們的底層,如果是純文本的話就涉及到一個(gè)東西是字符集。將字節(jié)轉(zhuǎn)成字符叫做解碼(在解碼的過程中就涉及到字符集的問題,如果工程的字符集跟源頭(文件)的字符集不統(tǒng)一就會(huì)出現(xiàn)亂碼),所以這個(gè)時(shí)候我們最好可以指定字符集
從字節(jié)流到字符流的轉(zhuǎn)換
只要我們看見Reader都建議加一個(gè)BufferedReader
將寫入的字符編碼為字節(jié)
講一下什么使用字節(jié)流,什么時(shí)候使用字符流
其實(shí)底層都是字節(jié),我們使用字符是為了處理一些文本和字符串提高性能字符流處理的單元為2個(gè)字節(jié)的Unicode字符,分別操作字符、字符數(shù)組或字符串,而字節(jié)流處理單元為1個(gè)字節(jié),操作字節(jié)和字節(jié)數(shù)組。所以字符流是由Java虛擬機(jī)將字節(jié)轉(zhuǎn)化為2個(gè)字節(jié)的Unicode字符為單位的字符而成的,所以它對(duì)多國語言支持性比較好!如果是音頻文件、圖片、歌曲,就用字節(jié)流好點(diǎn),如果是關(guān)系到中文(文本)的,用字符流好點(diǎn) 所有文件的儲(chǔ)存是都是字節(jié)(byte)的儲(chǔ)存,在磁盤上保留的并不是文件的字符而是先把字符編碼成字節(jié),再儲(chǔ)存這些字節(jié)到磁盤。在讀取文件(特別是文本文件)時(shí),也是一個(gè)字節(jié)一個(gè)字節(jié)地讀取以形成字節(jié)序列
字節(jié)流和字符流的使用:
Java IO流中提供了兩種用于將字節(jié)流轉(zhuǎn)換為字符流的轉(zhuǎn)換流。其中InputStreamReader用于將字節(jié)輸入流轉(zhuǎn)換為字符輸入流,其中OutputStreamWriter用于將字節(jié)輸出流轉(zhuǎn)換為字符輸出流。使用轉(zhuǎn)換流可以在一定程度上避免亂碼,還可以指定輸入輸出所使用的字符集
講一下緩存流和轉(zhuǎn)換流的結(jié)合,看見Reader我們就可以使用緩存流提高性能
使用轉(zhuǎn)換流實(shí)現(xiàn)字節(jié)到字符的轉(zhuǎn)換以及輸入和輸出
· 節(jié)點(diǎn)流:可以從或向一個(gè)特定的地方(節(jié)點(diǎn))讀寫數(shù)據(jù)。如FileReader.
· 處理流:是對(duì)一個(gè)已存在的流的連接和封裝,通過所封裝的流的功能調(diào)用實(shí)現(xiàn)數(shù)據(jù)讀寫。如BufferedReader.處理流的構(gòu)造方法總是要帶一個(gè)其他的流對(duì)象做參數(shù)。一個(gè)流對(duì)象經(jīng)過其他流的多次包裝,稱為流的鏈接。
講一下什么是節(jié)點(diǎn)流
字符流和字節(jié)流就可以叫做節(jié)點(diǎn)流
出現(xiàn)亂碼的原因有兩種:
1.字節(jié)數(shù)不夠出現(xiàn)亂碼
2.字符集不統(tǒng)一出現(xiàn)亂碼
html文件的下載,如何使用字節(jié)流,如何使用轉(zhuǎn)換流
在java中文件的傳輸其實(shí)就是靠流來實(shí)現(xiàn)的,網(wǎng)絡(luò)流也是屬于字節(jié)流,所以我們先使用字節(jié)流
我覺得寫的時(shí)候應(yīng)該是全部都寫出來才寫的,具體debug才知道,我這里就不弄了
為什么讀取的時(shí)候亂碼,寫入的時(shí)候不亂碼
忽然一下子自己就懂了,總之寫入的時(shí)候只要講字符集設(shè)置的和源頭的文件一致就可以了
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。