zoukankan      html  css  js  c++  java
  • python实现通过指定浏览器免费观看vip视频

    程序是先通过一个解析视频的网站,然后我们提取其接口,然后实现观看vip视频的目的

    所以说免费观看视频python程序很容易,但是下载视频就有些许麻烦了,下载视频请见我另一篇博客:python+fiddler下载vip视频 && ts视频可合并

    1、解析网站在代码中如下

    url = 'http://www.qmaile.com/'

    2、我们首先把解析网站上的接口爬下来

    3、然后我们通过python的tkinter库做一个小程序,将接口渲染到我们程序的面板上

    4、之后我们在弄一个用于输入电影链接的文本框

    5、之后点击播放就会打开一个页面去播放电影

    6、如果你没有指定用什么浏览器打开,程序会自动使用系统默认浏览器打开页面

    chromePath = r'C:Program Files (x86)GoogleChromeApplicationchrome.exe'
        webbrowser.register('chrome', None, webbrowser.BackgroundBrowser(chromePath))
        '''
        webbrowser.open(url, new=0, autoraise=True)
        在系统的默认浏览器中访问url地址,如果new=0,url会在同一个浏览器窗口中打开;如果new=1,新的浏览器窗口会被打开;new=2新的浏览器tab会被打开。
        '''
        webbrowser.get('chrome').open(var.get()+texts.get())

    7、这个程序没什么好说的。重要的是下载视频部分难搞,原本我以为点击播放后跳转到的那个页面就是视频地址,我以为可以直接下载。。。没想到那是一个新的页面,,,这就比较难搞了,我们就要通过fiddler去解析出视频真正下载地址,然后才可以去下载(不多说了,看我下篇播客八)

    8、代码(程序主要就是用了一个新模块tkinter)

    import requests
    import re
    import tkinter as tk
    import webbrowser
    
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'
    }
    url = 'http://www.qmaile.com/'
    response = requests.get(url,headers=headers)
    html = response.text
    pattern = re.compile('<option.value="(.*?)"')
    url_lis = re.findall(pattern,html)
    
    root = tk.Tk()
    root.geometry('500x300')  #设置窗口“宽x高”
    root.title('vip电影播放')  #设置窗口名称
    na = tk.Label(root,text='播放接口:',font=12) #往窗口上放置文字,并设置字体大小
    na.grid()  #将字体放在root上
    
    num=0
    var=tk.StringVar()
    for i in range(0,len(url_lis)):    #通过循环将每一个播放接口都放到root面板上
        # 如果某一个按钮被选中,那么url_lis的值会通过variable传给var
        name1 = tk.Radiobutton(root,text='播放接口'+str(num+1),variable=var,value=url_lis[num])
        name1.grid(row=num,column=3)  #将这个接口放在root面板的第num行,第column列
    
        num=num+1
    
    na2 = tk.Label(root,text='播放链接:',font=12)
    na2.grid(row=num,column=0)
    texts = tk.Entry(root,text='',width=50)  #输入链接的文本框
    texts.grid(row=num,column=3)
    num=num+1
    
    def dispaly():#不用系统默认浏览器,我们指定浏览器来打开链接
        chromePath = r'C:Program Files (x86)GoogleChromeApplicationchrome.exe'
        webbrowser.register('chrome', None, webbrowser.BackgroundBrowser(chromePath))
        '''
        webbrowser.open(url, new=0, autoraise=True)
        在系统的默认浏览器中访问url地址,如果new=0,url会在同一个浏览器窗口中打开;如果new=1,新的浏览器窗口会被打开;new=2新的浏览器tab会被打开。
        '''
        webbrowser.get('chrome').open(var.get()+texts.get())
        #webbrowser.open(var.get()+texts.get())
    '''
    def down_film():
        res = requests.get(texts.get(), headers=headers)
        res.encoding = res.apparent_encoding
        html = res.text
        pattern1 = '<title>(.*?)</title>'
        name = re.search(pattern1, html).group(1)
        print('视频{}已开始下载.......',format(name))
        url_film = var.get()+texts.get()
        print(url_film)
        film = requests.get(url_film, headers=headers).content
        with open( name+'.mp4', 'wb') as f:
            f.write(film)
        print('视频{}下载完成!', format(name))'''
    
    bf = tk.Button(root,text='播放',font=12,command=dispaly)  #设定按钮点击后触发的事件
    bf.grid(row=num,column=3)
    
    # bf = tk.Button(root,text='下载',font=12,command=down_film)  #设定按钮点击后触发的事件
    # bf.grid(row=num+5,column=3)
    
    root.mainloop()
    '''
    下面以“大决战奥特八兄弟”这部电影为例,我们先找到他在爱奇艺/腾讯视频/优酷/芒果/土豆/乐视的播放链接
    http://www.iqiyi.com/w_19rqswhlx9.html?vfm=m_103_txsp
    之后放到程序文本框内就行
    '''
  • 相关阅读:
    4412--PWM驱动部分
    Linux中进程与线程
    Linux 进程间通信 --信号量
    Linux 进程间通信 --消息队列
    Linux 进程间通信 --共享内存
    QByteArray转成十六进制的QString
    网易C++设计模式笔记(二)面向设计对象的原则
    网易C++设计模式笔记(一)
    windows安装系统记录
    设计模式解析第二版 课后习题自我解答
  • 原文地址:https://www.cnblogs.com/kongbursi-2292702937/p/13417654.html
Copyright © 2011-2022 走看看