python 爬取直播_Python爬取直播视频
首先我們利用開發者工具進行抓包分析
抓包.png
我們可以看到這個數據包一直在加載
分析.png
從鏈接中可以看到這是一個Flv文件,可以推測這個網站的直播形式大概就是HTTP+Flv的方式
我們對剛才獲取到的鏈接進行驗證,能否下載這個鏈接【簡單使用瀏覽器請求鏈接下載】
下載請求.png
直播視頻連接我們現在確定了,接下來要獲取URL鏈接
HTML代碼.png
通過關鍵字段搜索,很順利的獲取到了Flv的鏈接,接下來就簡單了,可以直接通過獲取源碼,匹配文本,提取Flv鏈接,然后直接請求下載請求到的鏈接
拼接地址,正則匹配Flv視頻連接
import requests
import re
def get_url(rid):
res = requests.get('https://www.tuho.tv/' + str(rid)).content.decode('utf-8')
flv = re.search(r'videoPlayFlv":"(https[\s\S].*?flv)', res)
if flv:
status = re.search(r'isPlaying\s:\s(\w+),', res).group(1)
if status == 'true':
real_url = flv.group(1).replace('\\', '')
return real_url
else:
raise Exception('未開播')
else:
raise Exception('直播間不存在')
if __name__ == '__main__':
rid = input("輸入直播房間號:\n")
print(get_url(rid))
直播視頻FLV.png
下載視頻,附帶進度顯示
import requests
import os
import sys
def download(url):
print("開始下載...")
file_path = r'/test'
#判斷目錄是否存在
if not os.path.exists(file_path):
os.makedirs(file_path)
size = 0
chunk_size = 1024
response = requests.get(url,stream=True)
with open(file_path+".flv", 'wb') as file:
for data in response.iter_content(chunk_size=chunk_size):
# print(data)
file.write(data)
size += len(data)
file.flush()
sys.stdout.write('\r[下載進度]:%.2fMB' % float(size / 1024 / 1024))
sys.stdout.flush()
file.close()
if __name__ == '__main__':
url = "獲取到的Flv鏈接地址"
download(url)
下載進度.png
總結
以上是生活随笔為你收集整理的python 爬取直播_Python爬取直播视频的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 技术对接场景,打破创新窘境
- 下一篇: python开发实践教程_Python开