Python教你如何打开正确的观影姿势
看片还要用VIP,不想开通会员,怎么办???
用Python敲个影片破解版的小项目,从此看片再也不用买会员了>_<
由于用到的知识点比较多,涉及到知识点提供见解,相关的知识点提供学习链接
导入需要的库:
import tkinter as tk #导入Python的标准GUI库:做图形用户界面的
import tkinter.messagebox as msgbox #导入对话框模块:当程序运行错误时,将错误以弹窗的形式告诉用户
import re #正则表达式 判断用户输入的网址是否有误
from urllib import parse #url 编码包
import webbrowser #控制浏览器的包 当用户点击了播放的时候 会调用webbrower 自动的去启动浏览器
用Python的标准GUI库:tkinter来做程序的界面展示;
用tkinter的三大对话框模块之一的messagebox来做弹窗错误提示;
用re库(正则表达式)来匹配相应搜索网址;
用urllib 库设置网页HTTP 请求;
用webbrowser库来跳转启动浏览器。
1.使用tkinter来制作的用户界面效果图:
def __init__(self, width=500, height=300): #重载,定义宽/高
self.w = width
self.h = height
self.title = '最牛B的视频助手' #设置标题
self.root = tk.Tk(className=self.title) #软件名
self.url = tk.StringVar() #vip视频播放地址 字符串类型
self.v = tk.IntVar() #定义播放源 整形类型
self.v.set(1) #默认选择第一个 set 设置
'''定义软件布局以及空间(Frame控件)'''
frame_1 = tk.Frame(self.root)
frame_2 = tk.Frame(self.root)
# 控件内容设置
group = tk.Label(frame_1, text='视频播放通道: ', padx=10, pady=10) #定义一个文字标签
tb = tk.Radiobutton(frame_1, text='芝麻开门', variable=self.v, value=1, width=10, height=3) #定义一个单选按钮控件
label = tk.Label(frame_2, text='请输入视频连接: ')
entry = tk.Entry(frame_2, textvariable=self.url, highlightcolor='Fuchsia', highlightthickness=1, width=35) #输入框定义
play = tk.Button(frame_2, text='播放', font=('楷体', 12), fg='Purple', width=2, height=1, command=self.video_play) #command绑定函数
#控件布局
frame_1.pack()
frame_2.pack()
#确定控件在软件中的位置 行:row 列:column
group.grid(row=0, column=0)
tb.grid(row=0, column=1)
label.grid(row=0, column=0)
entry.grid(row=0, column=1)
play.grid(row=0, column=3, ipadx=10, ipady=10)
2.使用正则表达式来解析视频网址:
port = 'http://www.wmxz.wang/video.php?url=' #视频解析网站地址
if re.match(r'^https?:/{2}\w.+$', self.url.get()) #做判断,防止用户输入非法域名
正则表达式(regular expression)就是一种字符串的匹配模式(pattern)
正则表达式的元字符匹配一览表
涉及到的字符集简写匹配:\w
推荐GitHub上开源的一份正则表达式教程:https://github.com/ziishaned/learn-regex/blob/master/translations/README-cn.md
3.使用messagebox来做链接网址有误时弹出提示窗口:
msgbox.showerror(title='错误', message='视频连接地址无效, 请重新输入!')
效果图:
4.使用urllib的request和parse模块获取视频IP
ip = self.url.get() #拿到用户输入的视频地址
ip = parse.quote_plus(ip) #视频播放地址编码
通过get方式发送http请求拿到用户输入的视频地址
Python文档查询quote_plus()的使用:
Urllib 库:Python 内置的 HTTP 请求库,包含四个模块
5. 使用webbrowser(一个 .NET 控件类)来自动打开浏览器
webbrowser.open(port + ip) #自动打开浏览器
语法:webbrowser.open(url, new=0, autoraise=True)
在系统的默认浏览器中访问url地址,
若new=0,url会在同一个浏览器窗口中打开;
若new=1,新的浏览器窗口会被打开;
new=2新的浏览器tab会被打开。
补充说明:博文发布之后有“小盆友”说不理解程序的原理,对此,在这说明一下。
原理:全民解析,说白了就是“盗链”,通俗易懂的说就是类枪版,其实这个程序的代码大多是tkinter的图像用户界面,核心代码不多,主要是用来在盗链网站上进行搜索处理。
适时更新请关注微信公众“百里锁钥”,公众号后台回复“VIP”获取程序源码和打包后的可执行文件,外附一个VIP观影免会员的线上链接