python gui界面实例_Python实现指定GitHub项目下载器「项目下载+GUI可视化界面操作」...

相信GitHub对于每一个从事开发的人都不会陌生,这里是技术人的乐园,在学校学习实践的时候经常会需要从这里查找相关的项目,遇上很好的或者是感兴趣的项目往往想要下载下来运行体验一番,在这个过程中往往会出现下载失败的问题,这里很大的一部分原因就是网速不稳定以及网速很低的问题,在这里我之前的一篇博客《GitHub网站项目下载速度过慢、下载失败问题成功解决》已经提供了两种亲测可行的解决方案,需要的话可是拿去使用。

73eefc139cb7477fce2a693b8cb8dbe6.png

想要下载GitHub中的某个项目,最常见的有两种形式:

1、在Git的命令行中使用"git clone 指定项目链接"的方式进行下载

2、就是借助界面的操作,如下图所示,点击红色方框里面的按钮即可下载。

2edea66b12f4a6b768dffc5142634d4c.png

看到这里,不禁想:能不能基于Python实现项目的自动下载呢?当然是木有问题的了

基于Python实现指定项目的下载就是抓取了项目下载的链接之后模拟网络请求就可以了,思想很简单,具体的代码实现如下所示:

def single(username,projectname,path,branch_name='master'): ''' 单个项目处理模块 ''' #代理构建 header_list=generate_random_UA(num=100) headers={'User-Agent':random.choice(header_list)} ip_proxy=random.choice(ip_list) one_type,one_ip,one_port=ip_proxy[0],ip_proxy[1],ip_proxy[2] proxy={one_type:one_type+'://'+one_ip+':'+one_port} url='https://codeload.github.com/{}/{}/zip/{}'.format(username,projectname,branch_name) filename=path+'/'+projectname zipfile_name=filename+'.zip' data=None try: data=urllib2.urlopen(url) with open(zipfile_name,'wb') as f: f.write(data.read()) with zipfile.ZipFile(zipfile_name, 'r') as f: f.extractall(path+'.') print('geting http://github.com/'+username+'/'+projectname) except (urllib.error.URLError): try: headers['Host']='github.com' request=requests.get('https://github.com/{}/{}'.format(username,projectname), headers=headers,proxies=proxy,timeout=5) response=urllib2.urlopen(request) pattern='/{}/{}/tree/(.*?)/'.format(username,projectname) b_name=re.findall(pattern, str(response.read()))[-1] single(username,projectname,path,b_name) except Exception as e: print('Exception: ',e) pass

参数说明如下,其中:

username:用户名projectname:项目名path:保存路径

基于命令的启动形式对于操作来说不是很方便,这里基于GUI实现了简单的界面可以方便地进行使用了,效果图如下所示:

121c871ca00599c5062804f931c96ee8.png
233090046a73c1b8ce29dfb939c8cc33.png
a0c97037ec7d00916d1db4e224e73f75.png
5afa02694e12a2d5bb6e0ccd1fcbbdcb.png

源码后续整理后上传我的GitHub,需要的话留言告知,我后续提供下载链接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值