1はじめに
この記事のテキストと写真はインターネットからのものであり、学習とコミュニケーションのみを目的としており、商用目的ではありません。ご不明な点がございましたら、処理についてお問い合わせください。
PS:Pythonの学習教材が必要な場合は、以下のリンクをクリックして自分で入手できます
Pythonの無料の学習資料、コード、交換回答クリックして参加
ビデオをクロールすると、現在のビデオが暗号化され(m3u8)、mp4またはaviリンクがWebページに直接表示されなくなり、すべて暗号化されて再生用のtsファイルセグメントが形成されることがわかりました。
今日は、Pythonクロールを介してm3u8暗号化ビデオをダウンロードする方法をお教えします。
2.Webページを分析します
1.映画のビデオソース
http://www.caisetv.com/
2.m3u8暗号化ディレクトリを分析します
http://www.caisetv.com/dongzuopian/chaidanzhuanjia/0-1.html
ビデオ再生ページでは、F12を介してネットワークデータパケットを表示できます
https://xigua-cdn.haima-zuida.com/20210219/19948_fcbc225a/1000k/hls/index.m3u8
ここのtsは、映画の暗号化されたセグメント化されたビデオです
https://xigua-cdn.haima-zuida.com/20210219/19948_fcbc225a/1000k/hls/
上記のindex.m3u8をm3u8にリンクした後、075a34cccdd000000.tsなどのts名を入力すると、セグメント化されたビデオへのリンクになります。
次のように:
https://xigua-cdn.haima-zuida.com/20210219/19948_fcbc225a/1000k/hls/075a34cccdd000000.ts
このセグメント化されたビデオをブラウザからダウンロードして開きます。
したがって、すべてのtsをダウンロードしてマージするだけで、ムービービデオが完成します。!!
3.tsをダウンロードします
1.tsセグメント化されたビデオをダウンロードします
tsの名前をすべてダウンロードしました
次に、Pythonコードでこのファイルを読み取り、名前を抽出し、リンクを接続した後、リンクをダウンロードしてフォルダーに保存します。
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0',}
###下载ts文件
def download(url,name):
r = requests.get(url, headers=headers)
with open(name+"", "wb") as code:
code.write(r.content)
with open("index.m3u8","r") as f:
ts_list = f.readlines()
#去掉前面没用的信息
ts_list = ts_list[5:]
urlheader="https://xigua-cdn.haima-zuida.com/20210219/19948_fcbc225a/1000k/hls/"
count = 0
for i in ts_list:
if "#" not in i:
i = i.replace("\n","")
download(urlheader+""+i,"cdzj2/"+str(count)+".ts")
count = count+1
print(count)
このようにして、すべてのtsファイルをダウンロードできますが、1つずつダウンロードするのは非常に時間がかかります。以下では、ダウンロード速度を向上させるために、複数のスレッドからダウンロードしてください。!!
2.複数のスレッドでtsビデオをダウンロードします
for i in ts_list:
if "#" not in i:
i = i.replace("\n","")
n = i[-7:]
threading.Thread(target=download, args=(urlheader+""+i,"cdzj2/"+str(n),)).start()
#download(urlheader+""+i,"cdzj2/"+str(count)+".ts")
これらのtsファイルは、マルチスレッドを介してローカルにすばやくダウンロードできます。!!
4.tsをマージします
cmdマージファイル
copy /b *.ts new.mp4
このコマンド(cmdターミナルで実行)を使用すると、tsファイルを含むフォルダー内のtsファイルをマージし(名前の順に並べてマージします)、new.mp4として保存できます。
5.まとめ
1. M3U8暗号化されたファイルを分析
2. PythonのダウンロードのTSファイル
3. MP4形式にCMDマージTSをし、それらの保存