本人小学学历(初中上了1年),33岁,学习PYTHON大概1个多月(实际学习12天基础知识),说句实在话,对于我来说,真的很难,一直在坚持。
对于这段代码除了一些基础知识,其他都是我自己根据需求,不停的百度出来的,在查找的同时吸取相应的知识,代码臃肿,条理混乱。
希望有哪位大神有闲时的话,可以给予一些指导。
@54048371 哥们,看你的代码真的很舒服,简洁,明了,条理清晰,不知是否可以联系一下,有空一起学习。
[Python] 纯文本查看 复制代码
import urllib.request
import json
import requests
import re
import tkinter as tk
import webbrowser
class VIP:
def __init__(self):
self.程序 = tk.Tk()
self.程序.title('VIP视频播放')
self.程序.geometry('+100+100')
self.程序.minsize(400, 200)
self.程序.resizable(True, True)
self.标签 = tk.Label(self.程序,text='VIP视频播放', anchor='e', font=('', 30), width=14, height=2)
self.标签.grid()
self.输入框()
self.搜索 = tk.Button(self.程序, text="搜索", font=("Arial",12), width=15, height=2, command=self.搜索按钮)
self.搜索.grid()
tk.Button(self.程序, text="播放", command=self.changeItems).grid()
def 搜索电影(self, huoqu):
mingc = huoqu
if mingc != 'q':
sousuo_url = 'https://api.okzy.tv/index.php/vod/search.html?wd={}&submit=search'.format(mingc)
response = requests.get(sousuo_url)
html = response.text # 获取网页内容
else:
exit()
if len(re.findall(r'<h1>没有找到匹配数据</h1>', html)) == 0:
sp_ids = re.findall(r'<span class="xing_vb4"><a href="/index.php/vod/detail/id/(.*?).html"', html)[0]
self.get_record(sp_ids) # 传递函数及参数
else:
print('抱歉,未能找到您想要看的视频!!!')
def get_record(self, ids_url_c):
url_list = []
url_list2 = []
jishu_list = []
self.url_list3 = []
# 拼接需要整理的视频链接
url = 'http://api.okzy.tv/api.php/provide/vod/?ac=detail&ids={}'.format(ids_url_c)
response1 = urllib.request.urlopen(url) # 打开url并返回网页数据
neirong = response1.read() # 读取网页内容
jiema_neirong = json.loads(neirong) # 给网页解码
neirong2 = jiema_neirong['list'][0]['vod_play_url'] # 获取指定的json内容
neirong2_list = neirong2.split('#') # 将获取到的内容以'#'分割
for i in range(len(neirong2_list)): # 获取内容数量
url_list.append(neirong2_list[i]) # 将获取到的每个内容添加到空列表里
if '$$$' in url_list[i]: # 判断每个获取到的内容是否包含字符串'$$$'
changdu = len(url_list[i]) # 获取每个内容的长度
weizhi = url_list[i].index('$$$') # 获取包含字符串'$$$'的位置
url_str = url_list[i][weizhi+3:] # 获取到的位置有位差,进行补位
su = url_str.split('$') # 将获取到的内容再次分割
jishu_list.append(su[0]) # 将列表下标为0(也就是集数)内容添加到集数列表
self.url_list3.append(su[1]) # 将列表下标为1(也就是视频链接)添加到链接列表
url_list2.append(url_str) # 将获取到的内容添加到新列表
# 由于这个json有一个地址不好分开,所以用上面的步骤操作
elif 'index.m3u8' in url_list[i]: # 判断获取到的内容是否包含'index.m3u8',只获取m3u8格式链接
su = url_list[i].split('$') # 将获取到的内容再次分割
url_list2.append(url_list[i]) # 将获取到的内容添加到新列表
jishu_list.append(su[0]) # 将列表下标为0(也就是集数)内容添加到集数列表
self.url_list3.append(su[1]) # 将列表下标为1(也就是视频链接)添加到链接列表
self.电视列表(jishu_list)
def 电视列表(self,jishuq):
self.tnames = jishuq
self.cnames = tk.StringVar()
self.cnames.set(self.tnames)
self.lb1 = tk.Listbox(self.程序, listvariable=self.cnames, width=15, selectmode="extended")
self.lb1.grid()
def 输入框(self):
self.提示标签 = tk.Label(self.程序, text='请输入您想查询的电视名称', font=('', 10), width=50, height=2)
self.提示标签.grid()
self.输入 = tk.Entry()
self.输入.grid()
def changeItems(self):
self.indexs = self.lb1.curselection()
for i in range(len(self.indexs)):
print('1', self.indexs[i])
aaa = self.indexs[i]
self.播放按钮(aaa)
def 播放按钮(self, xxx):
webbrowser.open("http://jx.sang0.com/?v={}".format(self.url_list3[xxx]))
def 搜索按钮(self):
self.搜索电影(self.输入.get())
if __name__ == '__main__':
op = VIP()
op.程序.mainloop() |