国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python爬蟲實(shí)戰(zhàn)案例——某站視頻爬蟲

這篇具有很好參考價(jià)值的文章主要介紹了python爬蟲實(shí)戰(zhàn)案例——某站視頻爬蟲。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

今天突然發(fā)現(xiàn),某站的視頻在電腦上是不能下載的。于是乎,就打算在電腦上爬取一下某站的視頻。讓大家在電腦上也能看,

準(zhǔn)備

某站的視頻是音頻和視頻分開的,我在網(wǎng)上搜了一下,要用到一個(gè)叫ffmpeg的音視頻合成的庫,網(wǎng)上教程很多,大家搜一下就可以找到了,我就不在此贅述了。

開始正題

還是老規(guī)矩——抓包。對某站進(jìn)行抓包,非常幸運(yùn),某站還是很和藹可親的并沒有對視頻進(jìn)行加密,一下就可以找到視頻鏈接。

python爬蟲實(shí)戰(zhàn)案例——某站視頻爬蟲,python爬蟲實(shí)戰(zhàn)案例,爬蟲,python,windows,pycharm,音視頻,json,正則表達(dá)式

?大家記得點(diǎn)一下左下角的格式化,不然并不能一眼就看到視頻鏈接。

在這里我踩坑了,因?yàn)檫@里的視頻鏈接實(shí)在是太多了

python爬蟲實(shí)戰(zhàn)案例——某站視頻爬蟲,python爬蟲實(shí)戰(zhàn)案例,爬蟲,python,windows,pycharm,音視頻,json,正則表達(dá)式

于是乎我剛開始是有點(diǎn)不確定這是不是我要找的視頻的鏈接的,那驗(yàn)證這個(gè)鏈接的最好的辦法是什么?沒錯(cuò),就是復(fù)制這個(gè)鏈接,然會在搜索欄搜索一下。但是這個(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é)了。前面的請求的部分其實(shí)都是一樣的。

# url = input("視頻鏈:")
url = 'https://www.bilibili.com/video/BV1614y1z7yr/?spm_id_from=333.1007.tianma.8-4-30.click&vd_source=19577052a287f6b91b30d9f7ecbda428'
# def get_proxy():
#     json_data = requests.get("http://demo.spiderpy.cn/get/").json()
#     proxies = {
#         'http' : 'http://{}'.format(json_data['proxy']),
#         'https' : 'https://{}'.format(json_data['proxy'])
#     }
#     return proxies
headers = {
    'referer': 'https://www.bilibili.com/',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.42'
}
response = requests.get(url=url, headers=headers)

大家要用的話直接注釋掉url,然后把url=input點(diǎn)亮就可以了,然后直接輸入你要下載視頻的鏈接。然后哪個(gè)更get_proxy方法是簡單的說就是獲取IP地址的,github上的一個(gè)代理池項(xiàng)目,因?yàn)槲液芘聲榉馕业膇p,畢竟爬蟲學(xué)的好,牢飯少不了,雖然我學(xué)的不好(狗頭保命)。就是一個(gè)反爬參數(shù),但有時(shí)候獲取的是國外的ip,但是請求不到數(shù)據(jù),我就注釋掉了。然后就是headers里面的參數(shù),referer一定要帶上,你得告訴它你是從某站來的,后面請求視頻的時(shí)候才能請求得到,不然是請求不到視頻的。可能是我在搜索鏈接的時(shí)候沒有加上這個(gè),所以我搜索不到,等下再去搜一下鏈接看看。

然后請求數(shù)據(jù)做完以后,我又和視頻清晰度杠上了,還是因?yàn)橛心敲炊嗟逆溄樱蚁敫闱宄膫€(gè)鏈接哪個(gè)清晰度的視頻,最后找了好久,也沒有找出哪里是視頻清晰度的標(biāo)識。于是索性我把前面幾個(gè)鏈接的視頻全部請求下來了,得到的區(qū)別如下圖

python爬蟲實(shí)戰(zhàn)案例——某站視頻爬蟲,python爬蟲實(shí)戰(zhàn)案例,爬蟲,python,windows,pycharm,音視頻,json,正則表達(dá)式

這個(gè)數(shù)據(jù)速率和總比特率是個(gè)啥,我也不知道,但文件最大的就是最清晰的(狗頭保命)??傮w看下來,前面那個(gè)width和height一樣的鏈接,請求到的視頻的清晰度都是最好的,且視頻清晰度區(qū)別不大,至少我肉眼是分不出來的。?

接下來就是對數(shù)據(jù)進(jìn)行解析了

ex1 = '<title data-vue-meta="true">(.*?)_.*?</title>'
ex2 = '<script>window.__playinfo__=(.*?)</script>'
title = re.findall(ex1, response.text, re.S)[0]
data = re.findall(ex2, response.text, re.S)
for i in title:
    if (i in "[\/:*?<>|]"):
        title = title.replace(i, '')
json_data = json.loads(data[0])
video_url = json_data['data']['dash']['video'][0]['baseUrl']
audio_url = json_data['data']['dash']['audio'][0]['baseUrl']

video_cotent = requests.get(url=video_url, headers=headers).content
audio_cotent = requests.get(url=audio_url, headers=headers).content

兩個(gè)正則表達(dá)式,一個(gè)獲取視頻的標(biāo)題,一個(gè)獲取視頻和音頻。一個(gè)for循環(huán),去掉存在保存為文件名會報(bào)錯(cuò)的標(biāo)點(diǎn)符號,就是要符合windows的文件命名規(guī)范,然后將包含視頻、音頻鏈接的文本json化,這樣我們可以得到一個(gè)字典,可以根據(jù)鍵來取得鏈接,當(dāng)然這種轉(zhuǎn)化數(shù)據(jù)是要分情況的,正好這里可以這么做。然后就是套娃,一層一層的通過鍵來獲取我們想要的值,得到我們的視頻和音頻鏈接。

最后,就是以二進(jìn)制文件保存,視頻和音頻了,我這里統(tǒng)統(tǒng)保存為了mp4和mp3了。有其他格式需求的小伙伴,可以進(jìn)行更改,最后保存。

with open(title + '.mp4', 'wb') as f :
    f.write(video_cotent)
with open(title + '.mp3', 'wb') as f :
    f.write(audio_cotent)

python爬蟲實(shí)戰(zhàn)案例——某站視頻爬蟲,python爬蟲實(shí)戰(zhàn)案例,爬蟲,python,windows,pycharm,音視頻,json,正則表達(dá)式

到這里就全部結(jié)束了。

踩坑總結(jié)?

第一點(diǎn)

第就是鏈接在瀏覽器搜索欄搜索不到東西,但是用代碼可以請求到視頻,可能是沒有帶上referer里面的參數(shù)。

第二點(diǎn)

就是視頻的清晰度,只要是width和hright參數(shù)值相同的鏈接,視頻清晰度就相差不到,還有就是排在最前面的鏈接,基本上就是這個(gè)視頻的最高分辨率的請求鏈接了。

?文章來源地址http://www.zghlxwxcb.cn/news/detail-690550.html

此文章僅用于學(xué)習(xí),請勿用于違法犯罪。

?

到了這里,關(guān)于python爬蟲實(shí)戰(zhàn)案例——某站視頻爬蟲的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • python批量爬取某站視頻

    python批量爬取某站視頻

    前言: 本項(xiàng)目是批量下載B站如下圖示例的視頻: (家里的小孩想看動(dòng)畫片,就下載到U盤上在電視上給他們放。。。) 在這個(gè)項(xiàng)目中,涉及到的模塊有以下幾個(gè): 1.shutil: Python 標(biāo)準(zhǔn)庫中的一個(gè)模塊,用于文件操作,包括復(fù)制、移動(dòng)、刪除文件等。在這個(gè)項(xiàng)目中,主要用于創(chuàng)

    2024年02月20日
    瀏覽(20)
  • Python爬蟲實(shí)戰(zhàn)案例——第一例

    Python爬蟲實(shí)戰(zhàn)案例——第一例

    X盧小說登錄(包括驗(yàn)證碼處理) 地址:aHR0cHM6Ly91LmZhbG9vLmNvbS9yZWdpc3QvbG9naW4uYXNweA== 打開頁面直接進(jìn)行分析 任意輸入用戶名密碼及驗(yàn)證碼之后可以看到抓到的包中傳輸?shù)臄?shù)據(jù)明顯需要的是 txtPwd 進(jìn)行加密分析。按 ctrl+shift+f 進(jìn)行搜索。 定位來到源代碼中斷點(diǎn)進(jìn)行調(diào)試。 然后直接跟

    2024年02月12日
    瀏覽(22)
  • Python爬蟲實(shí)戰(zhàn)案例——第二例

    Python爬蟲實(shí)戰(zhàn)案例——第二例

    某某美劇劇集下載(從搜索片名開始) 本篇文章主要是為大家提供某些電影網(wǎng)站的較常規(guī)的下載電影的分析思路與代碼思路(通過爬蟲下載電影),我們會從搜索某部影片的開始直到成功下載某一部電影。 地址:aHR0cHM6Ly93d3cuOTltZWlqdXR0LmNvbS9pbmRleC5odG1s 先來分析頁面 打開開發(fā)

    2024年02月11日
    瀏覽(18)
  • Python爬蟲實(shí)戰(zhàn)案例——音樂爬蟲,收費(fèi)歌曲依舊可用

    Python爬蟲實(shí)戰(zhàn)案例——音樂爬蟲,收費(fèi)歌曲依舊可用

    因?yàn)楝F(xiàn)在眾多音樂平臺下載歌曲都要收費(fèi)了,導(dǎo)致我沒有車載音樂聽了。于是便自學(xué)爬蟲做了這個(gè)簡易的音樂爬蟲。不是那些大平臺的音樂爬蟲,是一個(gè)不知名的小音樂網(wǎng)站的爬蟲。下面開始正題: 首先,便是找不是那幾家大互聯(lián)網(wǎng)公司的音樂網(wǎng)站,在我的不懈努力之下終于

    2024年02月03日
    瀏覽(26)
  • 〖Python網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)?〗- Selenium案例實(shí)戰(zhàn)(一)

    訂閱:新手可以訂閱我的其他專欄。免費(fèi)階段訂閱量1000+? ????????????????python項(xiàng)目實(shí)戰(zhàn) ???????????????? Python編程基礎(chǔ)教程系列(零基礎(chǔ)小白搬磚逆襲) 說明:本專欄持續(xù)更新中,目前專欄免費(fèi)訂閱,在轉(zhuǎn)為付費(fèi)專欄前訂閱本專欄的,可以免費(fèi)訂閱付費(fèi)專欄,

    2024年02月14日
    瀏覽(18)
  • 〖Python網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)?〗- Selenium案例實(shí)戰(zhàn)(三)

    訂閱:新手可以訂閱我的其他專欄。免費(fèi)階段訂閱量1000+? ????????????????python項(xiàng)目實(shí)戰(zhàn) ???????????????? Python編程基礎(chǔ)教程系列(零基礎(chǔ)小白搬磚逆襲) 說明:本專欄持續(xù)更新中,目前專欄免費(fèi)訂閱,在轉(zhuǎn)為付費(fèi)專欄前訂閱本專欄的,可以免費(fèi)訂閱付費(fèi)專欄,

    2024年02月07日
    瀏覽(51)
  • 抖音視頻提取工具可導(dǎo)出視頻分享鏈接|視頻爬蟲批量下載

    抖音視頻提取工具可導(dǎo)出視頻分享鏈接|視頻爬蟲批量下載

    抖音無水印視頻批量下載工具操作指南 一、工具介紹 我們開發(fā)了一款功能強(qiáng)大的視頻批量下載工具,不僅能夠通過單個(gè)視頻鏈接進(jìn)行提取,還可以通過進(jìn)行視頻搜索,Q:290615413實(shí)現(xiàn)批量提取和有選擇性的下載。 二、操作步驟 2.1 批量提取視頻 進(jìn)入軟件,點(diǎn)擊“

    2024年04月15日
    瀏覽(98)
  • 〖Python網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)?〗- Ajax數(shù)據(jù)爬取之Ajax 案例實(shí)戰(zhàn)

    訂閱:新手可以訂閱我的其他專欄。免費(fèi)階段訂閱量1000+ ????????????????python項(xiàng)目實(shí)戰(zhàn) ???????????????? Python編程基礎(chǔ)教程系列(零基礎(chǔ)小白搬磚逆襲) 說明:本專欄持續(xù)更新中,目前專欄免費(fèi)訂閱,在轉(zhuǎn)為付費(fèi)專欄前訂閱本專欄的,可以免費(fèi)訂閱付費(fèi)專欄,

    2024年02月06日
    瀏覽(59)
  • Python爬蟲逆向?qū)崙?zhàn)案例(五)——YRX競賽題第五題

    Python爬蟲逆向?qū)崙?zhàn)案例(五)——YRX競賽題第五題

    題目:抓取全部5頁直播間熱度,計(jì)算前 5 名直播間熱度的 加和 地址:https://match.yuanrenxue.cn/match/5 cookie中m值分析 首先打開開發(fā)者工具進(jìn)行抓包分析,從抓到的包來看,參數(shù)傳遞了查詢參數(shù) m 與 f ,同時(shí)頁面中給了提示說cookie僅有50秒的有效期,所以逆向參數(shù)可以直接通過co

    2024年02月11日
    瀏覽(32)
  • 〖Python網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)?〗- Ajax數(shù)據(jù)爬取之Ajax 分析案例

    訂閱:新手可以訂閱我的其他專欄。免費(fèi)階段訂閱量1000+ ????????????????python項(xiàng)目實(shí)戰(zhàn) ???????????????? Python編程基礎(chǔ)教程系列(零基礎(chǔ)小白搬磚逆襲) 說明:本專欄持續(xù)更新中,目前專欄免費(fèi)訂閱,在轉(zhuǎn)為付費(fèi)專欄前訂閱本專欄的,可以免費(fèi)訂閱付費(fèi)專欄,

    2024年02月07日
    瀏覽(55)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包