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

主要分为三部分: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

用python打造网易公开课视频下载软件的相关文章

手把手教你用python打造网易公开课视频下载软件3-对抓取的数据进行处理

上篇讲到抓取的数据保存到rawhtml变量中,然后通过编码最终保存到html变量当中,那么html变量还会有什么问题吗?当然会有了,例如可能html变量中的保存的抓取的页面源代码可能有些标签没有关闭标签,例如<div>hello</,这样的错误,那么怎么处理呢?接着看下面的代码: soup=BeautifulSoup(html) 其中利用模块BeautifulSoap,可能很方便去整理html源文件内容,这里我写了个小例子,大家看一下,代码如下: html='<html>&l

手把手教你用python打造网易公开课视频下载软件4-图形化界面

上一篇讲解完函数:def getdownLoadInfo (url): 传入公开课的url地址,就可以提取课程的信息,这一篇讲解一下如何编写图像化界面.大概思考一下图像化界面需要的内容: (1)一个标签:显示为:"请输入公开课地址" (2)一个文本框:用来输入地址 (3)一个按钮:点击用来提取视频信息 (4)一个标签和多行文本框,其中标签用来显示课程信息,多行文本用来显示下载链接 完成后的效果图如下: 我们先贴出代码: #创建APP app=wx.App(False) #创建frame

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

最近准备重温一下算法导论,感谢大网易把MIT算法导论课程全部贴出来,地址为:http://v.163.com/special/opencourse/algorithms.html 在线看时,网速实在太慢,于是决定下载下来,一个一个的下载不是我等IT男所能忍受的,用迅雷抓取吧,不是特别爽,恰巧前两天刚刚看了下python,于是准备自己写个小软件,练练手,正好可以用这个实际的东西,练练python. 好吧,既然是总述,那么我把接下来要讲的东西的整体轮廓都写在这篇里面,所有需要下载的资源也都会在这里贴

手把手教你用python打造网易公开课视频下载软件2-编码相关说明

函数getdownLoadInfo(url)主要实现核心功能:根据url地址,获取课程信息:课程名(courseTitle),课程数目(courseCount),可下载视频数目(videoCount),视频下载链接(videoUrl):不过再讲解之前,需要对编码的相关知识进行说明: #coding:utf-8 关于python编码的问题,的确是个值得研究的问题,因为简直是乱的一塌糊涂,大家可以看一些讲解的文章,这里不做深入讲解,只是给出结论性的东西,方便实际的使用: 1.正因为有了中文,才有了一

手把手教你用python打造网易公开课视频下载软件5-python生成exe程序

python程序生成exe文件,使用的是py2exe扩展包,下面写下具体的步骤: 第一步:新建conver2exe.py,内容如下: #coding:utf-8 from distutils.core import setup import py2exe setup(windows=["down163openv1.0.py"]) 其中"down163openv1.0.py "就是要转换的python程序,注意该文件与conver2exe.py在同一个文件夹下面 第二

斯坦福大学机器学习课程原始讲义(含公开课视频) (转载)

http://blog.csdn.net/v_july_v/article/details/7624837 斯坦福大学机器学习课程原始讲义 本资源为斯坦福大学机器学习课程原始讲义,为Andrew Ng 所讲,共计20个PDF,基本涵盖了机器学习中一些重要的模型.算法.概念,此次一并压缩上传分享给大家,朋友们可以直接点击右边下载:斯坦福大学机器学习课程原始讲义.zip. 斯坦福大学机器学习公开课视频 与之配套的则是斯坦福大学的机器学习公开课的视频: 1. 网易翻译的公开课视频:http://v.1

网易公开课中英字幕文件合并代码

如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 下载了网易公开课的视频之后,发现它的中文和英文字母是分开的,用其他播放器打开的时候只能载入一个字幕,于是就想合并2个文件 思路: 假定英文字幕的文件名叫1.srt,中文字幕的文件名叫2.srt,新合并的文件名叫3.srt.假设起始行为1. 读取1.srt中的每一行,同步读取2.srt中的每一行,并且将1.srt的数据写入3.srt,当发现行数对4取余的值为3时,将2.srt中读取的数

浙江理工大学公开课:设计与生活_全6集_网易公开课

浙江理工大学公开课:设计与生活_全6集_网易公开课 中国大学视频公开课  浙江理工大学公开课:设计与生活

网易公开课倍速播放

  最近在看网易公开课的视频,无奈的是网易不提供倍速播放.想到html5中video中有playbackRate属性(chrome&&safari),可以以此来实现自定义倍速播放.   注意到网页源代码里有这一段: 网易直接提供了m3u8的地址,利用正则提取出来换上mp4即为视频源地址. 通过设置display为none可以屏蔽原来的flash播放器.  下面只要document.createElement来创建所需的video等再添加进body即可显示HTML5的视频.设置video.p