想起了做了一个vip视频解析(其实只是因为不想开会员QAQ)
话不多说 直接上代码 拿走记得吱个声
#coding:utf-8
"""
@作者 : 名字不重要
@时间 : 2019/4/10
@学号 :这里我保密了哈
@编写软件 : PyCharm
@作者QQ :不给
"""
import re
import tkinter as tk
import tkinter.messagebox as msgbox
import webbrowser
import requests
class VideoParse:
# 构造函数,用于初始化全部变量
def __init__(self, width=600, height=200, background='white'):
self.w = width
self.h = height
self.bg = background
self.title = '白给少年视频解析'
self.root = tk.Tk(className=self.title)
self.url = tk.StringVar()
self.v = tk.IntVar()
self.v.set(1)
# 定义3个frame空间用于定义按钮
# Frame空间
frame_1 = tk.Frame(self.root)
frame_2 = tk.Frame(self.root)
frame_3 = tk.Frame(self.root)
frame_4 = tk.Frame(self.root)
# 菜单
menu = tk.Menu(self.root)
self.root.config(menu=menu)
menu1 = tk.Menu(menu, tearoff=0)
menu.add_cascade(label='菜单', menu=menu1)
menu1.add_command(label='关于作者', command=lambda: webbrowser.open('https://blog.csdn.net/qq_18252435'))
menu1.add_command(label='推出', command=lambda: self.root.quit())
# 控件内容设置
# frame1 ,每个frame标签元素默认按从左只有排列
group = tk.Label(frame_1, text='选择视频解析接口:', padx=5, pady=5)
tb1 = tk.Radiobutton(frame_1, text='线路一', variable=self.v, value=1, width=8, height=3)
tb2 = tk.Radiobutton(frame_1, text='线路二', variable=self.v, value=2, width=8, height=3)
tb3 = tk.Radiobutton(frame_1, text='线路三', variable=self.v, value=3, width=8, height=3)
# frame2
ps = tk.Label(frame_2,text = '如果看不了请换线路' ,padx=5, pady=5)
# frame3
label1 = tk.Label(frame_3, text="请输入视频链接:")
entry = tk.Entry(frame_3, textvariable=self.url, highlightcolor='Fuchsia', highlightthickness=1, width=35)
label2 = tk.Label(frame_3, text=" ")
play = tk.Button(frame_3, text="播放", font=('楷体', 12), fg='black', width=3, height=-1, command=self.video_play)
label3 = tk.Label(frame_3, text=" ")
# frame3
label_explain = tk.Label(frame_4, fg='black', font=('楷体', 12),
text='\n注意:仅支持爱奇艺、腾讯等主流视频网站的视频播放!')
# 控件布局
frame_1.pack()
frame_2.pack()
frame_3.pack()
frame_4.pack()
group.grid(row=0, column=0)
tb1.grid(row=0, column=1)
tb2.grid(row=0, column=2)
tb3.grid(row=0, column=3)
ps.grid(row=0, column = 0)
label1.grid(row=0, column=0)
entry.grid(row=0, column=1)
label2.grid(row=0, column=2)
play.grid(row=0, column=3, ipadx=10, ipady=10)
label3.grid(row=0, column=4)
label_explain.grid(row=1, column=0)
def video_play(self):#视频解析
# 无名小站接口
port_1 = 'http://www.wmxz.wang/video.php?url='
# 思古解析接口
port_2 = 'http://api.bbbbbb.me/jx/?url='
# 全民接口
port_3 = 'http://jx.598110.com/v/2.php?url='
# 正则表达拿取链接
if re.match(r'^https?:/{2}\w.+$', self.url.get()):
if self.v.get() == 1:
# 视频链接获取
ip = self.url.get()
# 浏览器打开
webbrowser.open(port_1 + ip)
if self.v.get() == 2:
ip = self.url.get()
# 浏览器打开
webbrowser.open(port_2 + ip)
elif self.v.get() == 3:
ip = self.url.get()
webbrowser.open(port_3 + ip)
else:
msgbox.showerror(title='错误', message='视频地址有误,请重新输入!')
def center(self):#设置居中
ws = self.root.winfo_screenwidth()
hs = self.root.winfo_screenheight()
x = int((ws / 2) - (self.w / 2))
y = int((hs / 2) - (self.h / 2))
self.root.geometry('{}x{}+{}+{}'.format(self.w, self.h, x, y))
# 设置背景颜色
# self.root.configure(background=self.bg)
def event(self):#绘制窗口
# 窗口居中
self.center()
# Start GUI (调用tk mainloop 展示窗口)
self.root.mainloop()
def get_url(self,name):
# http: // so.iqiyi.com / so / q_龙门客栈
url = 'http://so.iqiyi.com/so/q_'+name
res_temp = requests.get(url)
ID_temp = re.findall(r'firstlink"href="(.+?)""',res_temp)
res = requests.get(ID_temp)
ID = re.findall(r' hreflang="zh-CN" href="//(.+?)"/>',res)
return ID
if __name__ == '__main__':
# 实例化视频解析对象
app = VideoParse()
# 窗口绘制事件
app.event()