gxq229 发表于 2020-2-4 16:01

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

本人小学学历(初中上了1年),33岁,学习PYTHON大概1个多月(实际学习12天基础知识),说句实在话,对于我来说,真的很难,一直在坚持。
对于这段代码除了一些基础知识,其他都是我自己根据需求,不停的百度出来的,在查找的同时吸取相应的知识,代码臃肿,条理混乱。
希望有哪位大神有闲时的话,可以给予一些指导。
@54048371 哥们,看你的代码真的很舒服,简洁,明了,条理清晰,不知是否可以联系一下,有空一起学习。

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)
            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']['vod_play_url']# 获取指定的json内容
      neirong2_list = neirong2.split('#')# 将获取到的内容以'#'分割
      for i in range(len(neirong2_list)):# 获取内容数量
            url_list.append(neirong2_list)# 将获取到的每个内容添加到空列表里
            if '$$$' in url_list:# 判断每个获取到的内容是否包含字符串'$$$'
                changdu = len(url_list)# 获取每个内容的长度
                weizhi = url_list.index('$$$')# 获取包含字符串'$$$'的位置
                url_str = url_list# 获取到的位置有位差,进行补位
                su = url_str.split('$')# 将获取到的内容再次分割
                jishu_list.append(su)# 将列表下标为0(也就是集数)内容添加到集数列表
                self.url_list3.append(su)# 将列表下标为1(也就是视频链接)添加到链接列表
                url_list2.append(url_str)# 将获取到的内容添加到新列表
                # 由于这个json有一个地址不好分开,所以用上面的步骤操作
            elif 'index.m3u8' in url_list:# 判断获取到的内容是否包含'index.m3u8',只获取m3u8格式链接
                su = url_list.split('$')# 将获取到的内容再次分割
                url_list2.append(url_list)# 将获取到的内容添加到新列表
                jishu_list.append(su)# 将列表下标为0(也就是集数)内容添加到集数列表
                self.url_list3.append(su)# 将列表下标为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)
      aaa = self.indexs
      self.播放按钮(aaa)

    def 播放按钮(self, xxx):
      webbrowser.open("http://jx.sang0.com/?v={}".format(self.url_list3))

    def 搜索按钮(self):
      self.搜索电影(self.输入.get())

if __name__ == '__main__':
    op = VIP()
    op.程序.mainloop()

zhoushangjun 发表于 2020-2-4 19:22

你好 可以加个联系方式一起学习吗

gxq229 发表于 2020-2-15 18:08

BestPapa 发表于 2020-2-15 15:44
真的是,我每次说要学,每次都是看完理论就没继续了

我以前也是,一开始的想法是,找个培训机构,系统学习,但是我这边小城市,整个城市都没有教变成的,后来仔细想想,就算没有培训机构,自己慢慢学习,慢慢练习,每次也能丰富自己,唯一的不足就是,如果是有人手把手教的话,一些问题会少绕很多弯路,现在自己自学,很多地方明明很简单,可还是需要不停的百度,不停的自己实践才能理解的更透彻。不过不论如何,慢慢来,每天进步一点点,时间是积累知识最好的方法

ybl 发表于 2020-2-4 16:33

兄弟 我也想学Python,求推荐

netCheney 发表于 2020-2-4 16:33

中文变量名?一般不建议用中文变量名的,会有各种迷之报错

mysoft 发表于 2020-2-4 16:36

佩服楼主的学习精神!!!

李现在哪 发表于 2020-2-4 16:39

给楼主的学习精神点赞

成都老三 发表于 2020-2-4 16:43

PYTHON和易语言 哪个实用?

gxq229 发表于 2020-2-4 16:46

ybl 发表于 2020-2-4 16:33
兄弟 我也想学Python,求推荐

我在这说公众号会违反规则吗?我是通过公众号“python学习联盟”的基础知识,后面深入的要花钱了。我还没花钱学:lol

A风继续吹 发表于 2020-2-4 16:47

从哪里学习啊

gxq229 发表于 2020-2-4 16:47

netCheney 发表于 2020-2-4 16:33
中文变量名?一般不建议用中文变量名的,会有各种迷之报错

我也是昨天才知道可以使用中文变量名的,尝试一下,毕竟对我们这种小学毕业的人,英文基础实在是太差了{:1_937:}后面对代码各方面更熟悉后,会改回来使用英文变量的,实在不行用拼音都行,哈哈

chensure 发表于 2020-2-4 16:56

惭愧。。。零零散散学了一些时间,比不上你
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 学习PYTHON半个多月,写的一个VIP视频播放器(半成品)