某站電腦端視頻爬取
前言
今天突然發(fā)現(xiàn),某站的視頻在電腦上是不能下載的。于是乎,就打算在電腦上爬取一下某站的視頻。讓大家在電腦上也能看,
準(zhǔn)備
某站的視頻是音頻和視頻分開的,我在網(wǎng)上搜了一下,要用到一個(gè)叫ffmpeg的音視頻合成的庫,網(wǎng)上教程很多,大家搜一下就可以找到了,我就不在此贅述了。
開始正題
還是老規(guī)矩——抓包。對(duì)某站進(jìn)行抓包,非常幸運(yùn),某站還是很和藹可親的并沒有對(duì)視頻進(jìn)行加密,一下就可以找到視頻鏈接。

?大家記得點(diǎn)一下左下角的格式化,不然并不能一眼就看到視頻鏈接。
在這里我踩坑了,因?yàn)檫@里的視頻鏈接實(shí)在是太多了

于是乎我剛開始是有點(diǎn)不確定這是不是我要找的視頻的鏈接的,那驗(yàn)證這個(gè)鏈接的最好的辦法是什么?沒錯(cuò),就是復(fù)制這個(gè)鏈接,然會(huì)在搜索欄搜索一下。但是這個(gè)鏈接是搜索不到任何東西的,這也正是我踩的坑。?當(dāng)時(shí)我就直接把這個(gè)數(shù)據(jù)包給丟了,去找別的數(shù)據(jù)包了,不找還好,一找我就開始捉摸是不是某站加密了,(因?yàn)槭亲詫W(xué)爬蟲,最近剛好學(xué)到j(luò)s解密,覺得很有意思,所以一到找不到數(shù)據(jù)包的時(shí)候,滿腦子就是被加密了。狗頭保命)怎么找不到視頻鏈接。
然后,后面實(shí)在是沒找著,只能上網(wǎng)搜索大佬們的文章了。然后一看,滿臉不可置信,這個(gè)鏈接明明什么都搜不到啊。于是,帶著不屑的表情,看戲的心理(狗頭保命),把大佬們的代碼復(fù)制粘貼,看看能不能下載下來視頻。哎喲我去,還真下下來了,用的就是我丟掉的那個(gè)數(shù)據(jù)包的第一個(gè)url。于是我又把這鏈接放到瀏覽器搜索了一遍,還是什么都搜不到,但是它確實(shí)可以下載下來視頻。到現(xiàn)在我還是沒搞清楚是怎么回事,希望有大佬可以給我解答一下。但是我明白了,以后要是再碰到這種鏈接,直接上代碼干它就完了(狗頭保命)。
然后,就到了Ctrl+C和Ctrl+V的環(huán)節(jié)了。開玩笑的,然后就到了敲代碼的環(huán)節(jié)了。前面的請(qǐng)求的部分其實(shí)都是一樣的。
大家要用的話直接注釋掉url,然后把url=input點(diǎn)亮就可以了,然后直接輸入你要下載視頻的鏈接。然后哪個(gè)更get_proxy方法是簡單的說就是獲取IP地址的,github上的一個(gè)代理池項(xiàng)目,因?yàn)槲液芘聲?huì)查封我的ip,畢竟爬蟲學(xué)的好,牢飯少不了,雖然我學(xué)的不好(狗頭保命)。就是一個(gè)反爬參數(shù),但有時(shí)候獲取的是國外的ip,但是請(qǐng)求不到數(shù)據(jù),我就注釋掉了。然后就是headers里面的參數(shù),referer一定要帶上,你得告訴它你是從某站來的,后面請(qǐng)求視頻的時(shí)候才能請(qǐng)求得到,不然是請(qǐng)求不到視頻的??赡苁俏以谒阉麈溄拥臅r(shí)候沒有加上這個(gè),所以我搜索不到,等下再去搜一下鏈接看看。
然后請(qǐng)求數(shù)據(jù)做完以后,我又和視頻清晰度杠上了,還是因?yàn)橛心敲炊嗟逆溄?,我想搞清楚哪個(gè)鏈接哪個(gè)清晰度的視頻,最后找了好久,也沒有找出哪里是視頻清晰度的標(biāo)識(shí)。于是索性我把前面幾個(gè)鏈接的視頻全部請(qǐng)求下來了,得到的區(qū)別如下圖

這個(gè)數(shù)據(jù)速率和總比特率是個(gè)啥,我也不知道,但文件最大的就是最清晰的(狗頭保命)??傮w看下來,前面那個(gè)width和height一樣的鏈接,請(qǐng)求到的視頻的清晰度都是最好的,且視頻清晰度區(qū)別不大,至少我肉眼是分不出來的。?
接下來就是對(duì)數(shù)據(jù)進(jìn)行解析了
兩個(gè)正則表達(dá)式,一個(gè)獲取視頻的標(biāo)題,一個(gè)獲取視頻和音頻。一個(gè)for循環(huán),去掉存在保存為文件名會(huì)報(bào)錯(cuò)的標(biāo)點(diǎn)符號(hào),就是要符合windows的文件命名規(guī)范,然后將包含視頻、音頻鏈接的文本json化,這樣我們可以得到一個(gè)字典,可以根據(jù)鍵來取得鏈接,當(dāng)然這種轉(zhuǎn)化數(shù)據(jù)是要分情況的,正好這里可以這么做。然后就是套娃,一層一層的通過鍵來獲取我們想要的值,得到我們的視頻和音頻鏈接。
最后,就是以二進(jìn)制文件保存,視頻和音頻了,我這里統(tǒng)統(tǒng)保存為了mp4和mp3了。有其他格式需求的小伙伴,可以進(jìn)行更改,最后保存。

到這里就全部結(jié)束了。
踩坑總結(jié)?
第一點(diǎn)
第就是鏈接在瀏覽器搜索欄搜索不到東西,但是用代碼可以請(qǐng)求到視頻,可能是沒有帶上referer里面的參數(shù)。
第二點(diǎn)
就是視頻的清晰度,只要是width和hright參數(shù)值相同的鏈接,視頻清晰度就相差不到,還有就是排在最前面的鏈接,基本上就是這個(gè)視頻的最高分辨率的請(qǐng)求鏈接了。
此文章僅用于學(xué)習(xí),請(qǐng)勿用于違法犯罪。