批量下載視頻教程正文_第1頁
批量下載視頻教程正文_第2頁
批量下載視頻教程正文_第3頁
批量下載視頻教程正文_第4頁
批量下載視頻教程正文_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、巧用批處理自動化下載海量網(wǎng)絡(luò)資源第一部分 引言網(wǎng)絡(luò)上有好多免費視頻學(xué)習(xí)網(wǎng)站,比如“學(xué)吧學(xué)吧”和“enet網(wǎng)絡(luò)學(xué)院”。相信熱衷于各種電腦技術(shù)的人會經(jīng)常去這種網(wǎng)站充電吧。那好,問題來了,如果你碰到一個很好的視頻教程,雖然網(wǎng)站提供視頻的下載,但只能一個一個的下載,而且找遍整個網(wǎng)絡(luò)世界都沒有全套視頻的下載,怎么辦?有的視頻它的地址是有規(guī)律的(連續(xù)的),可以使用迅雷的“批量下載”,但是更多的視頻地址是沒規(guī)律的.所以要下載沒規(guī)律的視頻,我們就要一直重復(fù)著“打開網(wǎng)頁”“下載視頻”“關(guān)閉網(wǎng)頁”的動作,顯然這種機(jī)械式的操作沒人喜歡。其實我們可以換個思路,在我們打開網(wǎng)頁的時候,為什么能夠觀看視頻呢?其實這就跟ht

2、ml語言有關(guān)了,在我們打開網(wǎng)絡(luò)上的某個網(wǎng)頁的時候,瀏覽器就會解釋這個網(wǎng)頁,把網(wǎng)頁要表達(dá)的東西(比如圖片,表格)展現(xiàn)給我們。如果想讓網(wǎng)頁播放視頻,那就得在網(wǎng)頁文件中把這個視頻的地址加進(jìn)去。所以一般來說視頻的地址就在播放它的網(wǎng)頁的源代碼中。只要我們知道所有的視頻的地址了,那接下來要下載是它們是不是很簡單了?好了,思路漸漸清晰,問題是如何得到這些視頻地址?既然每個視頻的地址都“藏”在播放它的網(wǎng)頁中,那我們就可以把所有包含視頻地址的網(wǎng)頁全部下下來。然后再利用強(qiáng)大的批處理來提取出我們需要的視頻地址就可以了。做完這些我們就可以推廣到更一般的情況了,而不僅僅局限于下載視頻了. 第二部分運行環(huán)境以及使用工具操

3、作系統(tǒng):WINDOWS系列,理論上來說,能正常使用迅雷以及批處理文件的系統(tǒng)都可以。下載工具:本文中使用的下載軟件是迅雷,具體選擇看個人喜好。這里有必要介紹一下批處理文件(以下2段資料來源于網(wǎng)絡(luò))。批處理文件也叫批處理程序,可以用記事本來編寫,是有效的win32程序,直接雙擊運行。是不需要像高級語言程序那樣經(jīng)過編譯才能使用的,這是它的便利之處。批處理是一種簡化的腳本語言,它應(yīng)用于DOS和Windows系統(tǒng)中,它是由DOS或者Windows系統(tǒng)內(nèi)嵌的命令解釋器(通常是COMMAND.COM或者CMD.EXE)解釋運行。類似于Unix中的Shell腳本。批處理文件具有.bat或者.cmd的后綴.最簡

4、單的例子,是逐行書寫在命令行中會用到的各種命令。更復(fù)雜的情況,需要使用if,for,goto等命令控制程序的運行過程,如同C,Basic等高級語言一樣。 不要求大家看懂本文出現(xiàn)的兩個批處理程序,大家就把它們作exe程序吧,就像迅雷,我們只需要知道它能做什么,而不用關(guān)心它是怎么做到的。還好,這兩個程序都是菜鳥級的(因為我也是菜鳥),里面的命令都是批處理中使用頻率很高的,并不生僻,理解起來也不難。第三部分 完整的步驟思路有了,接下來就要一步步的實現(xiàn)我們的目標(biāo)了。我們的目的是應(yīng)用,不要求大家掌握里面涉及的各種技術(shù)和理論(比如html語言,批處理語言)。知道它的原理就可以了。3.1 登陸“目錄網(wǎng)頁”

5、圖3-1 圖片是從當(dāng)然這個網(wǎng)頁上還有一些對我們無用的鏈接,為了與那些無用的鏈接區(qū)別開,我們把這些打開后能播放視頻的鏈接稱作“有用鏈接”,點擊“有用鏈接”打開的網(wǎng)頁就叫“有用網(wǎng)頁”。注意:這里的“目錄網(wǎng)頁”、“有用鏈接”和“有用網(wǎng)頁”是我自己起的幾個形象的稱呼,方便表述而已。這幾個稱呼后文還會出現(xiàn)的,希望大家能夠了解。為了方便講解,本文使用了大量圖片。我們把這個“有用網(wǎng)頁作為例子。后面的一系列操作就是為了把“零起點學(xué)通C+”這一套視頻(一共三百多個)下載下來。 3.2 批量下載網(wǎng)頁讓我們回到圖片3-1所示的網(wǎng)頁(也就是“目錄網(wǎng)頁“)中,這個網(wǎng)頁中有著我們需要的所有的“有用鏈接”,接下來就要用迅雷

6、的“下載全部鏈接”這個功能了。在“目錄網(wǎng)頁”的隨便一個空白處點擊鼠標(biāo)右鍵,就會彈出一個菜單,這個菜單里就有“使用迅雷下載全部鏈接”這個選項(見圖3-2)。 圖3-2然后鼠標(biāo)左鍵點擊這個選項,就會出現(xiàn)一個對話框,如圖3-3所示。后面的網(wǎng)址就代表這些鏈接所指向的“有用網(wǎng)頁”,這樣我們就把這些“有用網(wǎng)頁”都下載下來了??梢钥吹剿械摹坝杏面溄印倍际莗hp格式的.于是我們點右下方的“篩選”,只下載所有php格式的. 圖3-3 篩選完后我們就可以點“確定”按鈕了,我們把這些網(wǎng)頁放在一個空目錄里面,假設(shè)是D盤的Temp目錄吧。實際上下載這300多個php網(wǎng)頁不要什么時間,因為每個文件30多K,300個總共

7、才10M左右。也許有人會問:如果下載了一些沒用的php網(wǎng)頁怎么辦?上述方法的確會下載到不需要的php網(wǎng)頁,但是僅僅是幾個。因此,沒必要那么細(xì)致。追求完美的讀者可以參考附錄一,里面介紹了一種方法,可以既不用“篩選”出php格式,而且能保證下載到的所有的php文件都是“有用網(wǎng)頁”。3.3 核心分析網(wǎng)頁 編寫程序 網(wǎng)頁下載完后,我們發(fā)現(xiàn)這些“有用網(wǎng)頁”的大小竟然驚人的相似,都是33K,如圖3-4。 圖3-4難道這僅僅是巧合?網(wǎng)頁設(shè)計的知識告訴我們:這些網(wǎng)頁除了源代碼里面包含的視頻地址不一樣外,其他地方是幾乎一模一樣的(包括這些地址在網(wǎng)頁源代碼中的位置)。 由于每個下載的“有用網(wǎng)頁”中都含有1個視頻地

8、址,我們就要用到批處理中的for /f 命令,這是個對文本的操作都要用到的命令,非常強(qiáng)大。我還是把代碼貼出來(如圖3-5),然后講思路吧。 圖3-5注意:這個程序要放到“有用網(wǎng)頁”所在的文件夾才有用,也就是我們前文提到的D:Temp文件夾,以下分析看不懂不要緊,可以直接看下一節(jié)。這段批處理總共11行,前兩行功能簡單不用管它,第三行的for /f意思是用“%a”來代表本目錄中每個“php”網(wǎng)頁,第二個for /f語句則是對“%a”也就是php網(wǎng)頁進(jìn)行do后面的指定操作。中間幾行先跳過,看第八行的if語句。它的判斷條件是“!str:-3!”=”swf”,意思是如果字符串str的最后三個字符是“sw

9、f”,那么這個字符串就是我們要找的網(wǎng)址。于是執(zhí)行后面的操作:把網(wǎng)址輸出到url.lst文件中。最大的問題出現(xiàn)了,為什么剛才我那么肯定的說“如果字符串str的最后三個字符是“swf”,那么這個字符串就是我們要找的網(wǎng)址”呢?我們還是先用記事本隨便打開一個“有用網(wǎng)頁”吧,由于這個學(xué)習(xí)網(wǎng)站上視頻是swf格式的。于是我們就用記事本的查找功能查找我們要的視頻地址出現(xiàn)在網(wǎng)頁的哪個位置,這個是最最關(guān)鍵的。 圖3-6但是我們可能會查找到某些沒用的信息,如圖3-6.不要緊,接著查找,失敗幾次就會成功了。如圖3-7,找到了。 圖3-7我們重新回到圖3-5所示程序的第二個for /f中,那個“delims= ”表示對

10、文本中的每一行以空格隔開,空格與空格之間是一個字符串。tokens=2表示用后面的%i代表第二個字符串。而set str=%i表示令str這個變量等于%i這個字符串,第六行和第七行是字符串替換功能,表示把str中的雙引號去掉,如果str里面還有http這幾個字符,就將http前面的所有字符給去掉,這樣如果滿足if條件的話我們就得到了一個合格的視頻地址了。大家可以對照著圖3-7看看是不是這樣的。所以那個批處理可以理解為“如果當(dāng)前php文件的某一行的第二列(第二個字符串)在經(jīng)過程序中第六行和第七行的替換后滿足if的條件就輸出到url.lst?!睔w納起來就是:在每個php文件中,除了我們要找的那個視

11、頻地址,其余的“第二列”是不會滿足if后面的判斷條件的。因為總共才幾個字符串包含了swf這個判別條件,這幾個字符串要么不在第二列,要么里面的swf不是最后三個字符。如果我哪里講的不是很清楚的話,網(wǎng)上有好多地方都有這些命令的詳細(xì)解釋的,就不啰嗦了。3.4用迅雷導(dǎo)入下載列表看完枯燥的步驟三,終于可以享受批處理給我們帶來的巨大便利了。運行步驟三中的批處理后會在Temp目錄下產(chǎn)生一個url.lst的文件,里面就是我們夢寐以求的全套視頻地址了。lst格式的文件是列表文件,可以直接用迅雷導(dǎo)入下載。具體方法,運行迅雷,然后點菜單欄里的“文件”選項,就會出現(xiàn)“導(dǎo)入下載列表”了,效果如圖3-8。 圖3-8然后點

12、確定,再選擇個文件夾來存放你下載的視頻。 3.4 自動化對視頻歸類本來前面四步完成后,我們的目的就達(dá)到了。但是在視頻下載完成后,你會發(fā)現(xiàn)一個文件夾里面有300多個視頻文件實在太恐怖,于是干脆另外寫了個批處理程序來將這些文件移動到一些文件夾里。 思路:每個視頻的名字里面都有一個下劃線“_”符號,下劃線前面的數(shù)字表示這視頻是第幾章的,后面的數(shù)字我們不用分析。這個視頻是第幾章的我們就把它移動到它對應(yīng)的文件夾里面。圖3-9是代碼,這個我就不解釋了。 圖3-9把這個bat文件保存在那些視頻所在的文件夾里,運行后產(chǎn)生15個文件夾,每個代表一章,那些視頻都會“規(guī)規(guī)矩矩”的進(jìn)入自己本應(yīng)該在的文件夾里面3.5完

13、整步驟總結(jié)第一步、你對哪一套視頻教程感興趣,又想把它下下來。那就進(jìn)入這個教程的“目錄網(wǎng)頁”。第二步、利用迅雷的“使用迅雷下載全部鏈接”這一功能,篩選出“有用網(wǎng)頁”,把它們?nèi)肯螺d到一個臨時的文件夾(如Temp)里面。第三步、在Temp文件夾里面新建個文本文檔,文件名任意。將圖3-5所示的代碼逐行寫進(jìn)去,然后把txt的后綴改為bat后綴(如果你電腦上的文件隱藏了擴(kuò)展名,更改格式的時候一定要把文件夾選項里的“隱藏已知文件類型的擴(kuò)展名”前面的勾去掉,不然沒法變成bat程序)。然后運行它來提取我們需要的視頻地址到url.lst文件中。第四步、使用迅雷導(dǎo)入列表文件下載找到的所有視頻。第五步、使用批處理將

14、下載的幾百個視頻分別移動到不同文件夾中,便于以后查找觀看。4 推廣應(yīng)用上面我們只分析了學(xué)吧學(xué)吧上的某一個教程,那么對于這個網(wǎng)站上的其他教程,或者其他視頻學(xué)習(xí)網(wǎng)站上的教程能不能使用本文中的方法呢?答案是肯定的。我們不僅能做到,還能絲毫不修改或者只修改第一個批處理程序的某一處。例如,對學(xué)吧學(xué)吧上的教程,可以照搬3.6中的步驟,甚至不用修改第一個批處理程序。再舉一個例子,對于另外一個大型學(xué)習(xí)網(wǎng)站“enet網(wǎng)絡(luò)書院”里的視頻,由于里面的“有用網(wǎng)頁”是shtml格式的,于是我們只需在第二步篩選的時候只下載shtml格式,在第三步把圖3-5所示批處理程序中第三行的那個*.php改成*.shtml就可以了。

15、所以,如果某個視頻學(xué)習(xí)網(wǎng)站它的“有用網(wǎng)頁”格式是其他格式的,只需要在兩個地方修改一下就可以了,完全是傻瓜式的操作。接下來介紹資源地址中出現(xiàn)相對地址的情況。說完了視頻,我們來說說下載音樂。還是從一個例子出發(fā)在我是張學(xué)友的歌迷,沒準(zhǔn)哪天突然興起會用本文中的方法來下載這500多首歌。不過要下載這個比上面提到的要麻煩一點。因為這兒涉及到了html語言中的“相對地址”(附錄一中有介紹)。音樂網(wǎng)站上的音樂一般是wma格式的,我們在上面的網(wǎng)頁隨便點個鏈接,出現(xiàn)了一個正在播放歌曲的網(wǎng)頁。我們查看這個網(wǎng)頁的源文件,查找wma,只出現(xiàn)了一個匹配的結(jié)果。 圖4-1“/new2/1037/29.wma”實際上也是一個

16、地址,而且正是我們要找的地址。但它是一個相對地址,而不是絕對地址。直接把這個地址給迅雷下載是下載不到任何東西的。我們必須知道它是相對于哪個地址的,于是我們把鼠標(biāo)懸停在播放歌曲的播放器上,如圖4-2.圖 4-2出來了一個“下載”按鈕用鼠標(biāo)左鍵點那個按鈕。彈出下載對話框,如圖4-3。圖4-3這個地址才是真正的絕對地址,比圖4-1中的相對地址多了所以,要下載到那500多首歌曲,我要做幾點改變。首先:篩選的時候選出htm格式的下載,第二:修改第一個批處理的內(nèi)容1.將tokens=2改成tokens=42.把*.php改成*.htm3.改變判斷條件if "!str:-3!"=&quo

17、t;swf"改成if "!str:-4!"="wma;"4.把相對地址省略掉的給補(bǔ)到!str!左邊echo !str!>>url.lst改成echo 至于為什么要把tokens=2改成tokens=4,讓我們回到圖片4-1中,“/new2/1037/29.wma”是處在第四列的,因為旁邊那個等號兩邊各有一個空格。判斷條件也要改變,因為結(jié)尾還有個可惡的分號,所以是看倒數(shù)四個字符是否匹配。所以無論是視頻還是音樂,如果你找到的地址只是相地址,并不意味著沒法下載了。此時需要我們找到它省略了那些字符。然后添加進(jìn)echo這個輸出語句就可以了。當(dāng)

18、然,圖片和其他資源都可以用本文提供的方法來下載.結(jié)論及尚存在的問題 本文證明在日常的學(xué)習(xí)生活中,可以借助于批處理強(qiáng)大的文本分析能力來幫助我們完成一些重復(fù)性高的工作。把一些枯燥而且機(jī)械的事情交給一個簡單的程序來完成,從而可以節(jié)省我們大量的工作、學(xué)習(xí)時間。充分體現(xiàn)了以人為本的思想。當(dāng)然批處理的功能不僅僅于此,感興趣的朋友可以自己上網(wǎng)去參觀一些關(guān)于批處理的網(wǎng)站,即使不學(xué)什么東西,也可以開闊眼界。我以為,一個長期跟電腦打交道的人,學(xué)點簡單的批處理在日常操作中是很有用處的,比如文中出現(xiàn)的第二個批處理,短短幾秒鐘的時間就能把幾百個文件智能地“分配”到十幾個文件夾里。這個方法有不適用的地方:一、 對那些采用了保護(hù)措施的視頻沒法下載,比如說土豆網(wǎng)上的視頻,這類視頻連迅雷都分析不出來視頻地址。這時候本文的方法就使用不了,因為批處理沒法提取視頻地址了。二、 如果你只需下載少量的資源,比如只有幾個或者十幾個的情況,建議最好不要用本文的方法。 缺憾:如果用戶碰到了與例子不符的情況就要修改批處理程序,不是很人性化,對于沒接觸過批處理的朋友來說就要自己學(xué)會變通了。如果能把第一個批處理程序用高級語言寫出來,實現(xiàn)與用戶交互就能省卻很多麻煩。于是我配上了大量圖片,結(jié)合2個實例盡自己最大努力講解了幾個關(guān)鍵的地方,希望大家起碼會用。附 錄 一、剔除網(wǎng)頁中的多余

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論