主要分为三部分: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
(完)
时间: 2024-10-27 12:09:30