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

手把手教你用python打造网易公开课视频下载软件1-总述

时间:2014-06-02 13:26:32      阅读:511      评论:0      收藏:0      [点我收藏+]

标签:c   style   class   blog   code   a   

最近准备重温一下算法导论,感谢大网易把MIT算法导论课程全部贴出来,地址为:http://v.163.com/special/opencourse/algorithms.html

在线看时,网速实在太慢,于是决定下载下来,一个一个的下载不是我等IT男所能忍受的,用迅雷抓取吧,不是特别爽,恰巧前两天刚刚看了下python,于是准备自己写个小软件,练练手,正好可以用这个实际的东西,练练python

好吧,既然是总述,那么我把接下来要讲的东西的整体轮廓都写在这篇里面,所有需要下载的资源也都会在这里贴出,而对里面代码的具体解释,写在后面的几篇文章里面,对里面的知识点进行总结。

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

好吧,啰嗦半天,正式开始写!

第一、整体要实现的功能

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

2.增加图形化界面

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

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

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

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

bubuko.com,布布扣
 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()
down163openv1.0.py

 

 

 

2.exe程序贴图:

bubuko.com,布布扣

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

1.源代码下载地址:

http://yunpan.cn/QiTNXAstpLaUU  访问密码 c348

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

http://yunpan.cn/QiTNbGBhUiRJm  访问密码 6fd2

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

1bs4:(BeautifulSoup):

http://yunpan.cn/QiTNN7KNLBNdU  访问密码 42ff

2chardet:

http://yunpan.cn/QiTN7HipPUhGe  访问密码 260f

3wxpython:

http://yunpan.cn/QiTisNmMEsMC9  访问密码 f861

4py2exe:

http://yunpan.cn/QiTiyLxfjwX4n  访问密码 06d8

5python2.7

http://yunpan.cn/QiTiZwfRXh7LQ  访问密码 2774

手把手教你用python打造网易公开课视频下载软件1-总述,布布扣,bubuko.com

手把手教你用python打造网易公开课视频下载软件1-总述

标签:c   style   class   blog   code   a   

原文地址:http://www.cnblogs.com/wuguanglei/p/3763119.html

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