码迷,mamicode.com
首页 > 编程语言 > 详细

用python打造网易公开课视频下载软件

时间:2016-11-15 08:15:52      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:tool   ora   ext   名称   mini   pytho   loop   网页   视频下载   

主要分为三部分:1.整体要实现的功能。2.贴出程序源代码及exe程序贴图3.各个资源下载地址

第一、整体要实现的功能

1.根据url地址,获取课程视频地址

2.增加图形化界面

3.将python程序,发布为exe文件,这样大家不安装python就可以运行了

4.由于下载文件名字并不是课程名字,所以下载后要能够实现批量重命名(目前1.0版本未实现)

第二、程序源代码及exe程序贴图

1.程序源代码:down163openv1.0.py

技术分享
技术分享
 1 #coding:utf-8
 2 import urllib
 3 from bs4 import BeautifulSoup
 4 import chardet
 5 import os
 6 import pickle
 7 import wx
 8 def getdownLoadInfo(url):
 9     #课程名
10     courseTitle=‘‘
11     #课程数目
12     courseCount=0
13     #可下载视频数目
14     videoCount=0
15     #视频下载地址
16     videoUrl=[]
17 #读取网页源文件到html,并处理后存入soup
18     rawhtml=urllib.urlopen(url).read()
19     htmlencoding=chardet.detect(rawhtml)[‘encoding‘]
20     html=rawhtml.decode(htmlencoding,‘ignore‘).encode(‘utf-8‘)
21     soup=BeautifulSoup(html)
22 #对soup进行分析
23     courseTitle=soup.find(name=‘title‘).contents[0]
24     courseInfo=soup.find(attrs={"id":"list2"})
25     courseTitleInfo=courseInfo.find_all(attrs={"class":"u-ctitle"})
26     courseVideoInfo=courseInfo.find_all(attrs={"class":"u-cdown"})    
27     for content in courseTitleInfo:
28         courseCount=courseCount+1     
29     for link in courseVideoInfo:
30         href=link.find(attrs={"class":"downbtn"})
31         if type(href)==type(None):
32             pass
33         else:
34             href=link.find(attrs={"class":"downbtn"}).get("href")
35             videoCount=videoCount+1
36             videoUrl.append(href)
37     return courseTitle,courseCount,videoCount,videoUrl      
38     
39 def showInfo(event):
40 #     url=r"http://v.163.com/special/opencourse/algorithms.html"
41     textArea.SetValue("")
42     url=text.GetValue()
43     courseTitle,courseCount,videoCount,videoUrl=getdownLoadInfo(url)
44     labelInfo.SetLabel(u‘课程名称:‘+courseTitle+‘\n‘+u‘,课程总集数:‘+unicode(courseCount)+‘\n‘+u‘,可下载集数:‘+unicode(videoCount))
45     for value in videoUrl:
46         textArea.AppendText(value+‘\n‘)
47 if __name__==‘__main__‘:
48   #创建APP
49     app=wx.App(False)
50   #创建frame窗口
51     frame=wx.Frame(parent=None,title=u‘下载网易公开课v1.0‘,size=(800,600),style=wx.CAPTION|wx.CLOSE_BOX|wx.MINIMIZE_BOX)
52     frame.Center()
53     #创建Menu
54     menuBar=wx.MenuBar()
55     menu1=wx.Menu()
56     menuBar.Append(menu1,u"文件")
57     #创建工具栏
58     toolbar=frame.CreateToolBar()
59     #创建Panel
60     panel=wx.Panel(frame)
61     panel.SetBackgroundColour(‘white‘)
62      
63     label=wx.StaticText(panel,label=u‘请输入公开课地址:‘)
64     font=wx.Font(13,wx.DECORATIVE,wx.NORMAL,wx.NORMAL)
65     label.SetFont(font)
66      
67     text=wx.TextCtrl(panel,size=(700,-1))
68      
69     button=wx.Button(panel,label=u‘提取下载地址‘)
70     button.SetFont(font)
71     frame.Bind(wx.EVT_BUTTON,showInfo, button)
72     labelInfo=wx.StaticText(panel,size=(-1,50))
73     textArea=wx.TextCtrl(panel,style=wx.TE_MULTILINE,size=(700,300))
74     #用sizer控制界面
75     sizer=wx.FlexGridSizer(cols=1,vgap=10)
76     sizer.AddMany([label,text,button,labelInfo,textArea])
77     panel.SetSizer(sizer)
78      
79     # #创建状态栏
80     statusBar=frame.CreateStatusBar()
81  
82     frame.Show(True)
83     app.MainLoop()
技术分享

 

 

 

2.exe程序贴图:

技术分享

第三、各个资源下载地址:(用的360网盘)

1.源代码下载地址:

http://pan.baidu.com/s/1sjuID5b

2.绿色版软件下载地址(exe):

http://pan.baidu.com/s/1nt9JPkH

3.各个扩展包下载地址:

http://pan.baidu.com/s/1nt5akjv

(完)

用python打造网易公开课视频下载软件

标签:tool   ora   ext   名称   mini   pytho   loop   网页   视频下载   

原文地址:http://www.cnblogs.com/tester-l/p/6064228.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!