本工具是用python语言实现功能,wxPython实现界面,pyinstaller打包成的电脑软件。
软件已经全部上传 我的gitee库 ,可自行下载使用。
一、图片展示
1.界面展示
2.实现效果展示
二、部分代码展示
1.需要的包
2.网页地址的重定向
3.爬虫实现视频获取(部分展示)
4.wxPython实现界面
import base64
import os
import wx
import requests
import re
注:其中wx 是wxPython包,下载使请用 pip3 install wxPython ,而不是pip3 install wx。
import re
import requests
# 丰富了输入样式,可以纯网址 也可以分享链接 提取网址
def getrightUrl(text):
url = re.search("(?Phttps?://[^\s]+)", text).group("url")
return UrlRedirct(url)
# 获得真实 重定向后的网址
def UrlRedirct(url, try_count=1):
http_headers = {'Accept': '*/*', 'Connection': 'keep-alive',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/105.0.0.0 '
'Safari/537.36 Edg/105.0.1343.27 '}
if try_count > 3:
return url
try:
rs = requests.get(url, headers=http_headers, timeout=10)
if rs.status_code > 400:
return get_real_url(url, try_count + 1)
return rs.url
except:
return get_real_url(url, try_count + 1)
import requests
import re
def getHtml_response(url):
# 伪装请求头方式/请求头参数
headers = {
'cookie': '',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.70 '
}
i = 0
while i < 3:
try:
response = requests.get(url=url, headers=headers, timeout=1)
return response
except requests.exceptions.RequestException:
i += 1
def getTitle(url):
response = getHtml_response(url)
title = re.findall('(.*?) ', response.text, re.S)[0]
title = title.replace(' ', '_')
title = title.replace('\n', '_')
return response.text, title
def getVideo(text, title):
href = re.findall('playAddr%22%3A%5B%7B%22src%22%3A%22(.*?)%22%7D%2C%7B%22src%22%3A%22%2F%2Fv3-web', text)[
0]
# print(href)
video_url = requests.utils.unquote(href)
video_url = 'https:' + video_url
# 获取视频的二进制数据
video_content = getHtml_response(video_url).content
# 保存数据
with open('video\\' + title + '.mp4', mode='wb') as f:
f.write(video_content)
return '视频下载成功!!!'
import os
import wx
if __name__ == '__main__':
app = wx.App()
frame = wx.Frame(None, -1, "视频下载器", size=(600, 500))
panel = wx.Panel(frame)
icon = wx.Icon(name='pic1.jpg', type=wx.BITMAP_TYPE_ICO)
frame.SetIcon(icon)
vi = ['bX', '抖X', '快X']
select_one = wx.Choice(panel, -1, choices=vi, style=wx.CB_SORT)
url_text = wx.TextCtrl(panel)
clear_button = wx.Button(panel, label="清空输入框")
clear_button.Bind(wx.EVT_BUTTON, clear_url_text)
save_button = wx.Button(panel, label="确认下载")
save_button.Bind(wx.EVT_BUTTON, downlord)
content_text = wx.TextCtrl(panel, -1, '输入视频网址,选择平台,再下载..... '
'(视频过大可能会显示未响应,稍等一下就行)', style=wx.TE_MULTILINE)
font = content_text.GetFont()
font.PointSize += 2
font = font.Bold()
content_text.SetFont(font)
box = wx.BoxSizer() # 不带参数表示默认实例化一个水平尺寸器
box.Add(url_text, proportion=6, flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL, border=1) # 添加组件
box.Add(select_one, proportion=1, flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL, border=1) # 添加组件
box.Add(clear_button, proportion=1, flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL, border=1) # 添加组件
box.Add(save_button, proportion=1, flag=wx.ALIGN_CENTER_VERTICAL | wx.ALL, border=1) # 添加组件
b_button = wx.Button(panel, label="请勿运用于商用!")
v_box = wx.BoxSizer(wx.VERTICAL) # wx.VERTICAL参数表示实例化一个垂直尺寸器
v_box.Add(box, proportion=1, flag=wx.EXPAND | wx.ALL, border=0) # 添加组件
v_box.Add(content_text, proportion=13, flag=wx.EXPAND | wx.ALL, border=0) # 添加组件
v_box.Add(b_button, proportion=1, flag=wx.EXPAND | wx.ALL, border=0) # 添加组件
panel.SetSizer(v_box)
os.remove(".\\pic1.jpg")
frame.Show(True)
app.MainLoop()
软件我已经上传我的gitee 库 ,可自行下载使用。因为是用爬虫写的,具有时效性。如果遇到软件无法使用,请在本篇博客留言评论,我及时更新。