想在家看VIP電影,我用python做了個破解軟體,她很開心!
執行平臺: Windows
Python版本: Python3.x
IDE: Sublime text3
一、前言
沒有會員,想線上觀看或下載愛奇藝、PPTV、優酷、網易公開課、騰訊視訊、搜狐視訊、樂視、土豆、A站、B站等主流視訊網站的VIP視訊?又不想充會員怎麼辦?博主本次寫的VIP視訊破解助手也許可以幫你解決煩惱。
二、軟體使用說明
1、軟體下載
軟體執行平臺:Windows
百度雲盤
.exe可執行檔案,即助手軟體儲存在dist資料夾下:
執行軟體,如果誤報木馬。將此應用程式新增到信任區,或者關閉防毒軟體,即可。PS:軟體無毒,可放心使用。
2、線上播放視訊(以愛奇藝為例講解)
在主介面我們可以選擇視訊的播放通道(預設通道一)。在視訊連線文字框中輸入視訊連線,點選播放按鈕,該助手軟體將啟動預設瀏覽器,視訊即可線上觀看。
視訊連線如何獲取呢?
在選單欄的友情連結的下拉列表中,我們可以選擇開啟一個我們喜歡的視訊網站,比如點選愛奇藝,預設瀏覽器將自動開啟愛奇藝首頁。
選擇一部自己喜歡的電影,瀏覽器位址列的內容即為視訊連線。
降龍大師
在助手軟體文字輸入框中輸入地址,點選播放即可線上觀看視訊:
3、視訊下載(以愛奇藝為例講解 )
注意:暫只支援愛奇藝和優酷的視訊下載,視訊線上觀看不受影響。
點選選單,出現下拉選單,在下拉選單選擇視訊下載(注意:請先新增視訊連線)
此時,預設瀏覽器會開啟網頁,等待幾秒鐘,待載入完成,點選下圖按鈕,即可通過瀏覽器下載視訊。
三、程式碼編寫
介紹完該助手軟體,進入本次爬蟲教程的正題:視訊抓包
1、軟體原理:
a)視訊播放
在講解視訊抓包之前,先介紹下兩個視訊解析網站:
這兩個網站為我們提供了免費的視訊解析,他們的通用解析方式是:
筆者正式呼叫了這兩個網站,實現視訊線上播放的。至於,視訊下載介面如何調出,即是本文的重點。
b)視訊下載
這兩個網站均沒有提供下載功能,當然如果你使用chrome視訊抓包外掛,也可以實現視訊的下載,例如使用chrome外掛:Flash Video Downloader。
不過為了學習,我們使用python程式進行抓包。因此,筆者使用無名小站進行視訊下載,對無名小站視訊進行抓包分析。
看過筆者之前的Python3網路爬蟲的讀者,一定知道如何進行抓包分析,在這裡不再囉嗦,直接進入正題:我們可以看到這裡有一個POST請求,Form Data中有兩個引數,一個是up,另一個是url。
因此,我們向伺服器傳送這個資料請求,對返回的資料進行json解析,即可得到視訊的真實地址,開啟這個視訊的真實地址,就會出現之前介紹的現在視訊的瀏覽器介面。僅僅這樣就可以了嗎?
其實不然,因為如果你單純使用這種方法,我們只能下載我們抓包分析時的視訊。因為,這個url是隨著我們解析視訊的不同而改變的,因此如何獲取這個改變的url,成為我們下一步的重點。
繼續分析我們會發現在傳送POST請求之前,有一個GET請求,如果我們向這個Request URL的地址傳送GET請求,你會驚奇的發現,返回的資訊裡包含我們需要的url資訊。
它是這個樣子的:
瞧,url我們就這樣得到了,通過相應的解析,提取出url資訊,並將這個url資訊作為之前提到的POST請求的Form Data,這樣我們就可以得到真實的視訊地址,通過該地址即可進行視訊下載,程式碼如下:
#-*-coding:utf-8-*-import reimport jsonfrom bs4 import BeautifulSoupfrom urllib import request, parseif __name__ == '__main__': ip = 'http://www.iqiyi.com/v_19rrb2yq04.html?fc=8b62d5327a54411b#vfrm=19-9-0-1' get_url = 'http://www.sfsft.com/index.php?url=%s' % ip get_movie_url = 'http://www.sfsft.com/api.php' head = { 'User-Agent':'Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19', 'Referer':'http://www.sfsft.com/index.php?url=%s' % ip } get_url_req = request.Request(url = get_url, headers = head) get_url_response = request.urlopen(get_url_req) get_url_html = get_url_response.read().decode('utf-8') bf = BeautifulSoup(get_url_html, 'lxml') a = str(bf.find_all('script')) pattern = re.compile("url : '(.+)',", re.IGNORECASE) url = pattern.findall(a)[0] get_movie_data = { 'up':'0', 'url':'%s' % url, } get_movie_req = request.Request(url = get_movie_url, headers = head) get_movie_data = parse.urlencode(get_movie_data).encode('utf-8') get_movie_response = request.urlopen(get_movie_req, get_movie_data) get_movie_html = get_movie_response.read().decode('utf-8') print(get_movie_data['url'])
執行結果如下圖所示:
進群:960410445
在瀏覽器中開啟這個地址,即可出現上面提到的視訊下載介面。同時,更改程式碼中的ip,即視訊連線地址,即可解析不同的視訊的真實視訊地址,並對其進行下載。
2、Tkinter
該助手軟體的介面是使用Python的Tkinter設計的,由於本部分內容不是Python網路爬蟲的重點,因此不在此進行講解。
四、總結
該軟體一定還是有一些Bug的,歡迎指出問題。
除此之外,軟體也有很多需要改進的地方。比如,視訊的下載是在瀏覽器中進行的,操作不友好。可以使用該軟體直接下載,選擇下載路徑,實現一鍵下載。同時,視訊下載暫只支援愛奇藝和優酷的視訊下載,這裡也可以進行改進。但是由於筆者的時間有限,就沒有繼續寫,後期可能會更新。