1. 程式人生 > 其它 >用Python批量獲取世界各地視訊,只有你喊不出名字的,沒有我爬不到的

用Python批量獲取世界各地視訊,只有你喊不出名字的,沒有我爬不到的

兄弟們,一般國外的電影電視劇,都找不到資源,很多人就對此束手無策了。
這個時候python就很有用了,只要叫得出名字的,都可以幾行程式碼搞定~

獲取結果


#我還給大家準備了這些資料,直接在群裡就可以免費領取了。
#一群:872937351 (群滿了的話加二群)
#二群:924040232
#python學習路線彙總
#精品Python學習書籍100本
#Python入門視訊合集
#Python實戰案例
#Python面試題
#Python相關軟體工具/pycharm永久啟用

程式碼展示

import requests  # 資料請求模組 pip install requests
import re # 正則表示式模組 內建模組 url = 'https://www.meiju11.com/Play/7816-0-0.html' headers = { 'Referer': 'https://www.meiju11.com/Play/7816-0-0.html', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36' } response = requests.get(url=url, headers=headers) response.encoding
= response.apparent_encoding # 自動識別編碼轉碼 # print(response.text) # 每個網站資料結構都不一樣, 都是需要重新去資料結構 title = re.findall("var playn = '(.*?)',", response.text)[0] video_data = re.findall('第\d+集\$(.*?)\$rrm3u8', response.text) print(title) print(video_data) num = 1 for index in video_data: video_name = f'{title}第{num}集
' print(video_name, index) # 1. 傳送請求, 對於 url地址傳送請求 # 確定請求的網址 video_url = f'https://www.meiju11.com/ckplayerx/m3u8.php?url={index}&f=ck_m3u8' # headers 請求頭 用來偽裝python程式碼的 不被識別出來是爬蟲程式 # User-Agent 使用者代理 瀏覽器基本身份標識 建議都加 # Referer 防盜鏈 告訴伺服器我們的傳送請求url地址 是從哪裡跳轉過來 # 加headers就穿個衣服 , 不加裸奔.... 有時候只是加一個UA 相當於你只有褲頭 # Cookie 使用者資訊, 檢測是否有登陸賬號 # Host 域名 headers_1 = { 'Referer': 'https://www.meiju11.com/js/player/rrm3u8.html', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36' } # 通過requests這個模組裡面get請求方法 對於url地址傳送請求, 並且攜帶上headers請求頭 最後用response變數接收返回資料 response = requests.get(url=video_url, headers=headers_1) # <Response [200]> 響應物件 200 狀態碼錶示請求成功 # 雖然請求成功, 但是沒有得到自己想要的資料內容..... # print(response.text) 文字資料 # 3. 解析資料, 提取我們想要的資料內容 視訊播放地址 m3u8_url = re.findall("url: '(.*?)'", response.text)[0] print(m3u8_url) # 4. 傳送請求, 對於這個播放地址傳送請求 m3u8_data_1 = requests.get(url=m3u8_url, headers=headers_1).text # . 是匹配任意字元(除了換行\n) * 匹配前一個字元0或者無限個 m3u8_data = re.sub('#EX.*', '', m3u8_data_1).split() for link in m3u8_data: # https://fangao.stboda.com/concat/20211115/54b420f81ccc4339b56b11b74adc15a7/cloudv-transfer/a0941a88a1784001b46560ea05257010_0000031.ts # a0941a88a1784001b46560ea05257010_0000000.ts # 6. 解析資料, 提取所有ts檔案 ts_url = 'https://fangao.stboda.com/concat/20211115/54b420f81ccc4339b56b11b74adc15a7/cloudv-transfer/' + link # 7. 儲存資料 (二進位制資料[圖片/音訊/視訊/特定格式的檔案]) 進行傳送請求 獲取資料 # ts_content = requests.get(url=ts_url).content # response.content 獲取二進位制資料 # # a 追加儲存 b 二進位制模組 # with open(video_name + '.mp4', mode='ab') as f: # f.write(ts_content) print(ts_url) num += 1