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

爬蟲|Python|ts格式的加密視頻合并方法

這篇具有很好參考價值的文章主要介紹了爬蟲|Python|ts格式的加密視頻合并方法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言:

爬蟲的一些基本概念:

對于爬蟲來說,沒有道德(比如,某些爬蟲上w的并發(fā),那么,一些小站可能就會崩潰,其實爬蟲也是可以作為網(wǎng)絡攻擊的,假設有需要攻擊的網(wǎng)站,上w甚至上百萬的并發(fā)爬蟲持續(xù)攻擊,這個網(wǎng)站可能開不了),沒有知識產(chǎn)權(quán)(爬蟲行為本來就是無視知識產(chǎn)權(quán)的,例如,爬取特權(quán)類視頻,音樂,文章),沒有網(wǎng)站安全這些規(guī)則(通常,爬蟲一旦開始,除非快速的自動封禁,例如,封IP,否則無法停止),也就是說,對于任何資源都可以借助爬蟲來獲取,爬蟲只是一個么得感情的機器,但有些東西是不能看,不能摸的,例如,國家機密,個人隱私(那有的人說,我看看怎么了?確實沒什么,但是只要讓人發(fā)現(xiàn)了,那么牢門基本也就開了,所以有人說Python是面向牢獄編程,其實說的也就是Python里的爬蟲技術(shù))

因此,爬蟲是一個需要比較全面的技術(shù)的,需要對于網(wǎng)站,網(wǎng)站結(jié)構(gòu),網(wǎng)站的規(guī)則,網(wǎng)站加解密,數(shù)據(jù)清理(爬取的數(shù)據(jù)可能會有冗余的東西在里面),正則表達式,js編程和加解密 等等非常熟悉才可以(技術(shù)全面才可以萬物皆可爬,否則爬取的范圍會比較狹窄)。

注:

爬蟲的爬取對象簡單分類

根據(jù)對象的種類來說,通??梢院唵畏譃橐粢曨l類和文字信息類,例如,爬取某個網(wǎng)站的音視頻,這個和爬取58的租房信息(文字信息類)是截然不同的。主要是音視頻基本是不需要太多數(shù)據(jù)清理的,爬取的成果基本是可以直接使用的。而文字信息類需要做大量的清洗工作,比如,爬取某個招聘網(wǎng)站的招聘信息,可能還需要將爬取結(jié)果分析后圖形化展示,而不是簡單的僅僅把招聘信息爬取下來就完了。

OK,以上是對爬蟲的一個簡單介紹,可能會有些地方寫的不對,不過這些不是關鍵,關鍵的是本文將結(jié)合實際案例來講解如何爬取某個視頻網(wǎng)站,并將爬取下來的ts格式的文件碎片合并成一個可用的視頻。

一,

爬取流程介紹

1,觀察網(wǎng)站結(jié)構(gòu)

例如,網(wǎng)站的資源是flv,還是ts,還是mp4,還是mpeg?data?AVI?rm?

2,判斷資源存放情況,是否有加密

基本上9成的音視頻是使用js技術(shù)加密

3,Python爬取數(shù)據(jù)(資源)

這個沒什么好說的,選擇合適的工具爬取就行了

4,清洗數(shù)據(jù)(資源),數(shù)據(jù)本地化存放

例如,ts格式的音視頻,需要利用VLC或者FFmpeg這些工具做格式轉(zhuǎn)換或者合并,通常不做格式轉(zhuǎn)換。

二,

本例是爬取電影,為了減少不必要的麻煩,本文將對相關網(wǎng)站信息做一個隱藏

python爬蟲ts,奇怪的知識,python,爬蟲,開發(fā)語言,vim,服務器

OK,該網(wǎng)站是js加密的視頻網(wǎng)站,至少說明了它的前端是js

python爬蟲ts,奇怪的知識,python,爬蟲,開發(fā)語言,vim,服務器

python爬蟲ts,奇怪的知識,python,爬蟲,開發(fā)語言,vim,服務器

下載下來的m3u8文件內(nèi)容大體如下:

#注 m3u8是加密的索引文件,視頻整個是由打散的ts文件組成,播放順序什么的依賴于此文件內(nèi)的定義。

python爬蟲ts,奇怪的知識,python,爬蟲,開發(fā)語言,vim,服務器

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:17
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="/GC9085SGN/hls/key.key?auth_key=1682852153-0-0-7bf5f4d47f0ec3df72272b30216650d9"
#EXTINF:16.683,
/GC9085SGN/hls/whsPIn26.ts?auth_key=1682852153-0-0-a32f5de97343f44bc587f6b7539287f4
#EXTINF:8.342,
/GC9085SGN/hls/TV01N4OD.ts?auth_key=1682852153-0-0-9c2c4060ad661d909823f7b9d87810d3
#EXTINF:7.574,
/GC9085SGN/hls/d1JsgnCS.ts?auth_key=1682852153-0-0-72ba99f4312b3829d38cb726aa7ce1da
#EXTINF:8.342,
/GC9085SGN/hls/RguFgwwn.ts?auth_key=1682852153-0-0-1abf376184fd0989494008b0a6c08b4d

#EXT-X-KEY:METHOD=AES-128,URI="/GC9085SGN/hls/key.key?這一段表示視頻是采用aes-128加密算法加密的,并且?guī)в衚ey,key?的存放地址是網(wǎng)站首頁+/GC9085SGN/hls/key.key

ts文件是沒有辦法直接看的,因為,有key加密,如果沒有加密,那么也僅僅是一個小片段而已。

OK,目前的任務就是通過m3u8這個索引文件將該文件內(nèi)定義的所有ts文件(也就是視頻碎片文件)爬取下來,并將所有ts文件合并,合并后的文件就是解密出來的可以直接看的視頻文件了。

?那么,保存有整個m3u8文件信息的就是以下鏈接了,也就是說獲取ts文件是從這個鏈接開始:

python爬蟲ts,奇怪的知識,python,爬蟲,開發(fā)語言,vim,服務器

三,

Python編程,根據(jù)m3u8文件,爬取ts文件:

GC5498WCU是js加密的sn,這個每一個視頻都是不同的,因此,代碼里要和URL里的一致,總共是三個地方涉及。auth_key?是ID號,

import requests
import re
import os
def ts_long():
    headers = {
        "Accept": "*/*",
        "Accept-Encoding": "gzip, deflate, br",
        "Accept-Language": "zh-CN,zh;q=0.9",
        "Connection": "keep-alive",
        "sec-ch-ua": "\" Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"97\", \"Chromium\";v=\"97\"",
        "sec-ch-ua-mobile": "?0",
        "sec-ch-ua-platform": "\"Windows\"",
        "Sec-Fetch-Dest": "empty",
        "Sec-Fetch-Mode": "cors",
        "Sec-Fetch-Site": "cross-site",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36"
    }
    url = 'https://xxxxx/GC5498WCU/hls/index.m3u8?auth_key=1683086690-3uw3vaj5c3kityoxiuapmegw8ywv7clg-0-259993e937aa27591a3907a3a92b07fd'
    resp = requests.get(url)
    data = resp.text
    print(data)
    print("1111111111")
    print(len(data),type(data))
    indexs_list = re.findall(r'/GC5498WCU/hls/(.*)', data)
    #indexs_key = re.findall(r'1682852153(.*?)',data)
    print(indexs_list,len(indexs_list))
    for i in range(0, len(indexs_list)):
        print(i)
        print(indexs_list[i])
        thisname = re.findall(r'.*.ts', indexs_list[i])
        print(thisname,type(thisname))
        name = ''.join(thisname)
        print(name,type(name))
        uri = 'https://xxxxxxx.cn/GC5498WCU/hls/{}'.format(indexs_list[i])
        print(uri)
        res = requests.get(uri, headers=headers)
        data1 = res.content
        f_path = '\123'
        with open(f_path + name, 'wb') as fp:
            fp.write(data1)
            print(name,'下載完成!!')
ts_long()

?python爬蟲ts,奇怪的知識,python,爬蟲,開發(fā)語言,vim,服務器

?代碼運行的樣子是這樣的:

python爬蟲ts,奇怪的知識,python,爬蟲,開發(fā)語言,vim,服務器

四,

FFmpeg合并ts文件

FFmpeg下載地址:?

Builds - CODEX FFMPEG @ gyan.dev

https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-2023-04-30-git-e7c690a046-full_build.7z

python爬蟲ts,奇怪的知識,python,爬蟲,開發(fā)語言,vim,服務器




FFmpeg合并ts文件有兩種方式,一種方式是網(wǎng)絡,直接通過m3u8的網(wǎng)絡地址下載合并,大體命令如下:

E:\新桌面\ffmpeg-2023-04-30-git-e7c690a046-full_build\ffmpeg-2023-04-30-git-e7c690a046-full_build\bin\ffmpeg.exe     -allowed_extensions ALL -protocol_whitelist "file,http,crypto,https,tcp,tls" -i https://xxxxx.cn/GC9093CRU/hls/index.m3u8?auth_key=1683208754-gp2c9xsv9nay1wgcjwtc6xc9ifnypeyg-0-5ffb80c2f15da85c32b0a643ffb0677d   E:\新桌面\xxxx\4444.mp4

?大概輸出是這樣的:

python爬蟲ts,奇怪的知識,python,爬蟲,開發(fā)語言,vim,服務器

?第二種方式比較麻煩,但是速度十分的快,也就是本地的ts文件合并,由于ts文件是加密的,因此,需要key.key?文件,m3u8文件,并對m3u8文件做修改(ts文件路徑修改為本地路徑):

(文件修改比較麻煩,不過有宏錄制還算比較簡單的吧,如何批量修改見我的博文:vim的宏錄制和應用實例(文本編輯飛一般的感覺)_錄制宏的例子_晚風_END的博客-CSDN博客

C:\Users\adminsss\PycharmProjects\untitled\venv\? 這個路徑是我的Python跑的路徑,前面下載的ts文件,不知道什么原因都加了一個S,因此,還是使用宏處理掉,key.key的路徑也是本地的,ts文件也是修改為本地的,由于是本地合并,因此,合并出來的文件十分清晰,沒有音視不同步的情況。

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:8
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="C:\\Users\\adminsss\\Desktop\\key.key"
#EXTINF:5.067,
C:\Users\adminsss\PycharmProjects\untitled\venv\SvMNMI3F0.ts
#EXTINF:8.333,
C:\Users\adminsss\PycharmProjects\untitled\venv\S1CGCFR76.ts
#EXTINF:8.333,
C:\Users\adminsss\PycharmProjects\untitled\venv\SWOYtWIYD.ts
#EXTINF:8.333,
C:\Users\adminsss\PycharmProjects\untitled\venv\SnqD9lyW7.ts
#EXTINF:8.333,
。。。。略略略

然后打開cmd,輸入以下命令即可:

python爬蟲ts,奇怪的知識,python,爬蟲,開發(fā)語言,vim,服務器

?也就是

ffmpeg.exe?-allowed_extensions ALL -protocol_whitelist "file,http,crypto,https,tcp,tls" -i index.m3u8 -c copy 12323.mp4

上面的例子里,我都是用的絕對路徑,m3u8?文件存放在桌面了,-allowed_extensions ALL -protocol_whitelist "file,http,crypto,https,tcp,tls"?這些必須要有,否則會報錯,成功合并的樣子:

python爬蟲ts,奇怪的知識,python,爬蟲,開發(fā)語言,vim,服務器

由于cmd是在system32目錄下,因此,合并出來的文件也在這個目錄下,當然,你可以指定輸出的路徑,我偷懶了而已。

OK,ts文件合并就暫時介紹到這里。?文章來源地址http://www.zghlxwxcb.cn/news/detail-721773.html

到了這里,關于爬蟲|Python|ts格式的加密視頻合并方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • 視頻爬蟲:解析m3u8文件 python m3u8庫,m3u8文件中.ts視頻流的解密下載

    視頻爬蟲:解析m3u8文件 python m3u8庫,m3u8文件中.ts視頻流的解密下載

    這里需要引用的庫是: from Crypto.Cipher import AES 有坑哈, python3.0 之后直接安裝crypto你會發(fā)現(xiàn)不管怎么著都會報錯。 經(jīng)過查找資料找到了原因,原來是20年之后crypto已經(jīng)被pycryptohome替換掉啦, 如果之前安裝過crypyo 活pycrypto需要先卸載 然后再安裝 pycryptohome 就可以啦 首先我們需

    2024年02月14日
    瀏覽(30)
  • 下載盜版網(wǎng)站視頻并將.ts視頻文件合并

    下載盜版網(wǎng)站視頻并將.ts視頻文件合并

    我們發(fā)現(xiàn)index.m3u8中儲存著所有的.ts文件名在拼接上前面固定的url就可以獲取到.ts文件

    2024年02月07日
    瀏覽(20)
  • Python爬蟲,請求參數(shù)加密怎么辦?

    Python爬蟲,請求參數(shù)加密怎么辦?

    目錄 背景介紹: 目標網(wǎng)址: 頁面分析: 逆向解析加密參數(shù)思路 代碼實現(xiàn): code_js.js JS方式實現(xiàn) python代碼實現(xiàn) 總結(jié): ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?我是政胤 期待你的關注 背景介紹: 大家好 我是 政胤. 我們在請求接口的時候,發(fā)現(xiàn)請求參數(shù)數(shù)加密的,該如何處理

    2024年02月11日
    瀏覽(22)
  • Python爬蟲如何解決提交參數(shù)js加密

    注意?。。。?僅做知識儲備莫拿去違法亂紀,有問題指出來,純做筆記記錄 由于¥%…………%#%** 所以!@#¥……*……* 啥也不說直接上代碼 如何找到這塊單獨出來的js 代碼需要有一定的前端打斷點的知識,在這里我就不指出了??。 草稿箱里很古早的一篇也忘記后面有沒有

    2024年02月08日
    瀏覽(17)
  • python ts視頻轉(zhuǎn)mp4

    TS(TransportStream,傳輸流)是一種封裝的格式,它的全稱為MPEG2-TS。MPEG2-TS是一種標準數(shù)據(jù)容器格式,傳輸與存儲音視頻、節(jié)目與系統(tǒng)信息協(xié)議數(shù)據(jù),主要應用于數(shù)字廣播系統(tǒng),譬如DVB、ATSC與IPTV。傳輸流最初是為廣播而設計的。后來,通過在標準的188字節(jié)數(shù)據(jù)包中添加4字節(jié)的

    2024年02月07日
    瀏覽(22)
  • 某查查請求頭參數(shù)加密分析(含JS加密算法與Python爬蟲源碼)

    【作者主頁】: 吳秋霖 【作者介紹】:Python領域優(yōu)質(zhì)創(chuàng)作者、阿里云博客專家、華為云享專家。長期致力于Python與爬蟲領域研究與開發(fā)工作! 【作者推薦】:對JS逆向感興趣的朋友可以關注《爬蟲JS逆向?qū)崙?zhàn)》,對分布式爬蟲平臺感興趣的朋友可以關注《分布式爬蟲平臺搭建

    2024年02月02日
    瀏覽(18)
  • TS格式視頻的使用

    TS格式視頻的使用

    TS(Transport Stream,傳輸流)是一種封裝的格式,它的全稱為MPEG2-TS。MPEG2-TS是一種標準數(shù)據(jù)容器格式,傳輸與存儲音視頻、節(jié)目與系統(tǒng)信息協(xié)議數(shù)據(jù),主要應用于數(shù)字廣播系統(tǒng),例如,DVB、ATSC與IPTV。傳輸流最初是為廣播而設計的。后來,通過在標準的188字節(jié)數(shù)據(jù)包中添加4字節(jié)

    2024年02月11日
    瀏覽(21)
  • Python爬蟲抓取經(jīng)過JS加密的API數(shù)據(jù)的實現(xiàn)步驟

    Python爬蟲抓取經(jīng)過JS加密的API數(shù)據(jù)的實現(xiàn)步驟

    隨著互聯(lián)網(wǎng)的快速發(fā)展,越來越多的網(wǎng)站和應用程序提供了API接口,方便開發(fā)者獲取數(shù)據(jù)。然而,為了保護數(shù)據(jù)的安全性和防止漏洞,一些API接口采用了JS加密技術(shù)這種加密技術(shù)使得數(shù)據(jù)在傳輸過程中更加安全,但也給爬蟲開發(fā)帶來了一定的難度。。 在面對經(jīng)過JS加密的API數(shù)

    2024年02月10日
    瀏覽(24)
  • python使用ffmpeg合并多張圖片成視頻

    注意: 需要在本地有ffmpeg,并且配置環(huán)境變量 下載鏈接如下:https://download.csdn.net/download/qq_30273575/87898080 # FFmpeg 將多張圖片合成視頻 # 可以使用 FFmpeg 庫來將多張圖片合成視頻,下面是一個簡單的示例: # 在代碼中,需要提供存儲圖片的文件夾路徑 images_path 和最終生成的視頻

    2024年02月11日
    瀏覽(31)
  • Python逆向爬蟲入門教程: 酷狗音樂加密參數(shù)signature逆向解析

    Python逆向爬蟲入門教程: 酷狗音樂加密參數(shù)signature逆向解析

    網(wǎng)站鏈接: aHR0cHM6Ly93d3cua3Vnb3UuY29tLw== 正常抓包分析找到音頻鏈接地址 ? 通過鏈接搜索找到對應的數(shù)據(jù)包位置 ? ? 分析 signature 參數(shù)加密位置 ? ? 通過 s 列表 合并成字符串, 傳入d函數(shù)中進行加密, 返回32位, 還是比較明顯的MD5加密, 相當于請求參數(shù)除了signature 以外, 在頭尾加了一

    2024年02月02日
    瀏覽(27)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包