首页 编程教程正文

学习PYTHON半个多月,写的一个VIP视频播放器(半成品)

piaodoo 编程教程 2020-02-22 22:16:38 1472 0 python教程

本文来源吾爱破解论坛

本人小学学历(初中上了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()

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/8074.html

搜索