python学习:urllib库学习:资源下载
本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.
环境:
主机:WIN8
版本:python2.7.9
说明:
利用urllib的功能,制作一个下载器
源代码:
1.不带界面
#coding=utf-8 import urllib def cbk(a, b, c): '''回调函数 @a: 已经下载的数据块 @b: 数据块的大小 @c: 远程文件的大小 ''' per = 100.0 * a * b / c if per > 100: per = 100 print '%.2f%%' % per url = 'http://a.hiphotos.baidu.com/image/pic/item/0e2442a7d933c89529745d76d31373f0820200b1.jpg' local = 'd://1.jpg' urllib.urlretrieve(url, local, cbk)
2.增加下载界面:
效果:
源代码:
#coding=utf-8 from Tkinter import * import tkMessageBox import urllib class Application(Frame): def __init__(self, master=None): Frame.__init__(self, master) #self.pack() self.grid() self.createWidgets() def createWidgets(self): self.label_download = Label(self,text = '下载链接:') self.label_download.grid(row=0, column=0) self.text_download = Entry(self) self.text_download.grid(row=0, column=1) self.label_save = Label(self,text = '保存地址:') self.label_save.grid(row=1, column=0) self.text_save = Entry(self) self.text_save.grid(row=1, column=1) self.progress_bar=Scale(self,from_=0,to=100,orient=HORIZONTAL) #设置起始位置 self.progress_bar.set(0) self.progress_bar.grid(row=2, column=1) self.button_down = Button(self, text='下载', command=self.download) self.button_down.grid(row=3, column=1) def download(self): download_link = self.text_download.get() save_addr = self.text_save.get() urllib.urlretrieve(download_link, save_addr, cbk) tkMessageBox.showinfo('通知', '下载完成') #回调函数 #@a: 已经下载的数据块 #@b: 数据块的大小 #@c: 远程文件的大小 def cbk(a, b, c): per = 100.0 * a * b / c app.progress_bar.set(per) if per > 100: per = 100 print '%.2f%%' % per app = Application() # 设置窗口标题: app.master.title('下载管理器Ver1.0 by jdh') #设置了主窗口的初始大小 app.master.geometry('240x120') # 主消息循环: app.mainloop()
参考链接:
1.Python模块学习 --- urllib
2.Python Tkinter Grid布局管理器详解