立即注冊(cè) 找回密碼

QQ登錄

只需一步,快速開(kāi)始

查看: 5280|回復(fù): 0
打印 上一主題 下一主題

[PHP 教程] you-get 一個(gè)很強(qiáng)的視頻地址抓取工具的方法

[復(fù)制鏈接]

111

主題

16

回帖

1819

積分

大學(xué)四年級(jí)

Rank: 6Rank: 6

積分
1819
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2018-1-16 00:28:20 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
道勤網(wǎng)-數(shù)據(jù)bmrsportswear.com

親注冊(cè)登錄道勤網(wǎng)-可以查看更多帖子內(nèi)容哦。ò蕡D片、文字詳情等)請(qǐng)您及時(shí)注冊(cè)登錄-bmrsportswear.com

您需要 登錄 才可以下載或查看,沒(méi)有賬號(hào)?立即注冊(cè)

x
前段時(shí)間,我因公司需求。所以要去研究如何拿到視屏的播放地址。一般普通的網(wǎng)站的視屏播放地址還是很好拿到的。但是對(duì)于優(yōu)酷,騰訊這樣的大型視屏資源站就很難拿到視屏資源了。普通的網(wǎng)站你通過(guò)網(wǎng)頁(yè)就可以直接抓取到視屏的播放地址。但是這些大型就不行,這些網(wǎng)站都是做了防盜鏈的。就拿優(yōu)酷來(lái)講,首先他用了自己的SWF播放器,然后服務(wù)器會(huì)異步加載一段參數(shù)到頁(yè)面播放器上去。播放器內(nèi)部會(huì)對(duì)這些參數(shù)進(jìn)行一個(gè)解析,然后獲取到視頻的播放地址。這個(gè)解析過(guò)程是比較復(fù)雜的。
  最開(kāi)始我用fiddler4去抓包,還是能夠抓到很多有用信息的。最開(kāi)始想用逆向JS去做,但是后來(lái)發(fā)現(xiàn)它的東西好像和JS關(guān)系不太大,然后我又用jsop去抓關(guān)鍵代碼,發(fā)現(xiàn),他的視屏信息是通過(guò)異步加載的,表示jsoup抓不到,后來(lái)仔細(xì)觀察發(fā)現(xiàn),他的請(qǐng)求一本都是SWF播放器發(fā)出來(lái)的,沒(méi)辦法,只能把他的SWF抓下來(lái),做了一個(gè)反編譯后:(如果只是簡(jiǎn)單的網(wǎng)頁(yè)套用的話,可以用它的swf然后去抓網(wǎng)頁(yè)上name="flashvars" 段的value,然后把這段value發(fā)給swf后就能播放了。)
這邊就是主要的東西。
大概知道優(yōu)酷的大概加密方式就是
  k.youku.com/player/getFlvPath+"/sid/"+$sid+"_"+No+"/st/"+thisVideoType+"/fileid/"+id
  大概就是這個(gè)格式 sid 就是securityId 然后加上No(編號(hào))然后后面的 fileId也是經(jīng)過(guò)一系列加密的,并不是簡(jiǎn)單的ID。一般是會(huì)有一個(gè)token  ,K ,ep 參數(shù)是比較重要的參數(shù) 最后拿這個(gè)地址你只是獲取到了一串能夠獲取播放地址的JSON
  1. [{"fileid":"0300080100579F87DDDF300157E54E465E9572-D357-57B7-15CA-646DEC5748A9.mp4","server":"http://117.41.231.17/youku/696AF5871C487D59853F424D/0300080100579F87DDDF300157E54E465E9572-D357-57B7-15CA-646DEC5748A9.mp4"}]
復(fù)制代碼
就如上面這個(gè)一樣,雖然server能夠獲取到視頻的地址,但是/youku/后面的那串亂碼是一個(gè)SEED加密。也就是說(shuō)沒(méi)多少個(gè)小時(shí)就會(huì)變一次,也就是不可能一次拿到一個(gè)永遠(yuǎn)不變的地址的。
  優(yōu)酷的視頻下載全是走的客戶端,也就是說(shuō)網(wǎng)頁(yè)端想要抓取地址,普通的方法是行不通的。后來(lái)我對(duì)客戶端進(jìn)行一個(gè)數(shù)據(jù)抓包,然后驚奇的發(fā)現(xiàn)TMD根本抓不到任何有用信息,只能無(wú)奈的感嘆這客戶端太尼瑪屌了。每次我點(diǎn)擊下載新視頻后再看看抓包信息,空空如也像什么也沒(méi)發(fā)生過(guò)。沒(méi)辦反只能走反編譯的路了。。(反編譯工具免費(fèi)版只能看,,不能復(fù)制更別說(shuō)調(diào)試了。。、。。我操。。。)
      扯了這么多,現(xiàn)在進(jìn)入正題了。you-get 是一個(gè)強(qiáng)大的抓取視頻的工具,原理就是上面的swf反編譯后抓取了加密方式,然后對(duì)網(wǎng)頁(yè)請(qǐng)求進(jìn)行一個(gè)解析,然后從視屏站服務(wù)器中騙取地址出來(lái)。
     首先這個(gè)語(yǔ)言是基于Python 的 先去官方下載最新的(至少3.0以上)的版本,因?yàn)檫@個(gè)版本自帶pip3.下好后配好環(huán)境
     這邊我就不多說(shuō)了:http://www.jianshu.com/p/a3f8df948395
     然后打開(kāi)cmd命令 輸入
  1. pip3 install --upgrade you-get
復(fù)制代碼
來(lái)獲取 you-get 獲取成功后基本的使用方法上面鏈接有。
     接下來(lái)就是關(guān)鍵了。
     如果你是只想獲取地址的話可以在前面 加  命令
  1. --json
復(fù)制代碼
  1. you-get --json  youwannaURL
復(fù)制代碼
 即可獲取到地址
通過(guò)pip3安裝的東西一般放在 你的Python文件夾/Lib/site-packages/  下
  extractor.py 是main 層后的 功能能層。 可以進(jìn)去看看 有很多方法 ,比如
you-get  URL這種不帶參數(shù)的話 就會(huì)執(zhí)行這個(gè)download 的第一個(gè)if 的else語(yǔ)句 直接下載視頻。如果有了 --json 參數(shù)的話,就是執(zhí)行的這個(gè)if
下載的功能在 common.py里面
可以向我這樣加一段來(lái)輸出看;蛘哂胷eturn阻斷下載,。
回到輸出json這邊來(lái)在json_output.py 下
可以向我這樣,選取自己需要的字段,然后用文件的形式把它輸出。皆大歡喜,拿到了地址了。
更多想要的功能可以自己改代碼~

道勤主機(jī)提供365天*24小時(shí)全年全天無(wú)休、實(shí)時(shí)在線、零等待的售后技術(shù)支持。竭力為您免費(fèi)處理您在使用道勤主機(jī)過(guò)程中所遇到的一切問(wèn)題! 如果您是道勤主機(jī)用戶,那么您可以通過(guò)QQ【792472177】、售后QQ【59133755】、旺旺【詮釋意念】、微信:q792472177免費(fèi)電話、后臺(tái)提交工單這些方式聯(lián)系道勤主機(jī)客服! 如果您不是我們的客戶也沒(méi)問(wèn)題,點(diǎn)擊頁(yè)面最右邊的企業(yè)QQ在線咨詢圖標(biāo)聯(lián)系我們并購(gòu)買后,我們?yōu)槟赓M(fèi)進(jìn)行無(wú)縫搬家服務(wù),讓您享受網(wǎng)站零訪問(wèn)延遲的遷移到道勤主機(jī)的服務(wù)!
本內(nèi)容系 道勤團(tuán)隊(duì) bmrsportswear.com 客服與技術(shù)人員研究整理的智慧結(jié)晶,轉(zhuǎn)載勿用于商業(yè)用途,并保留本文鏈接,侵權(quán)必究!
dsu_marcocopyright:copy_link 

【道勤網(wǎng)】- bmrsportswear.com 軟件視頻自學(xué)教程|免費(fèi)教程|自學(xué)電腦|3D教程|平面教程|影視動(dòng)畫教程|辦公教程|機(jī)械設(shè)計(jì)教程|網(wǎng)站設(shè)計(jì)教程!【道勤網(wǎng)】 - 論壇版權(quán)1、本主題所有言論和圖片純屬會(huì)員個(gè)人意見(jiàn),與本論壇立場(chǎng)無(wú)關(guān)
2、本站所有主題由該帖子作者發(fā)表,該帖子作者與【道勤網(wǎng)】- bmrsportswear.com 軟件視頻自學(xué)教程|免費(fèi)教程|自學(xué)電腦|3D教程|平面教程|影視動(dòng)畫教程|辦公教程|機(jī)械設(shè)計(jì)教程|網(wǎng)站設(shè)計(jì)教程!【道勤網(wǎng)】享有帖子相關(guān)版權(quán)
3、其他單位或個(gè)人使用、轉(zhuǎn)載或引用本文時(shí)必須同時(shí)征得該帖子作者和【道勤網(wǎng)】- bmrsportswear.com 軟件視頻自學(xué)教程|免費(fèi)教程|自學(xué)電腦|3D教程|平面教程|影視動(dòng)畫教程|辦公教程|機(jī)械設(shè)計(jì)教程|網(wǎng)站設(shè)計(jì)教程!【道勤網(wǎng)】的同意
4、帖子作者須承擔(dān)一切因本文發(fā)表而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
5、本帖部分內(nèi)容轉(zhuǎn)載自其它媒體,但并不代表本站贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)
6、如本帖侵犯到任何版權(quán)問(wèn)題,請(qǐng)立即告知本站,本站將及時(shí)予與刪除并致以最深的歉意
7、【道勤網(wǎng)】- bmrsportswear.com 軟件視頻自學(xué)教程|免費(fèi)教程|自學(xué)電腦|3D教程|平面教程|影視動(dòng)畫教程|辦公教程|機(jī)械設(shè)計(jì)教程|網(wǎng)站設(shè)計(jì)教程!【道勤網(wǎng)】管理員和版主有權(quán)不事先通知發(fā)貼者而刪除本文

本版積分規(guī)則

關(guān)閉

道勤網(wǎng)- 推薦內(nèi)容!上一條 /2 下一條

!jz_fbzt! !jz_sgzt! !jz_xgzt! 快速回復(fù) !jz_fhlb! !jz_lxwm! !jz_gfqqq!

關(guān)于我們|手機(jī)版|小黑屋|地圖|【道勤網(wǎng)】-bmrsportswear.com 軟件視頻自學(xué)教程|免費(fèi)教程|自學(xué)電腦|3D教程|平面教程|影視動(dòng)畫教程|辦公教程|機(jī)械設(shè)計(jì)教程|網(wǎng)站設(shè)計(jì)教程【道勤網(wǎng)】 ( 皖I(lǐng)CP備15000319號(hào)-1 )

GMT+8, 2024-10-23 05:40

Powered by DaoQin! X3.4 © 2016-2063 Dao Qin & 道勤科技

快速回復(fù) 返回頂部 返回列表