香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > python >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

Python实现批量下载文件


时间:2021-12-08 14:46 作者:admin


python/' target='_blank'>python实现批量下载文件

#!/usr/bin/env Python# -*- coding:utf-8 -*-from gevent import monkeymonkey.patch_all()from gevent.pool import Poolimport requestsimport sysimport osdef download(url): chrome = 'Mozilla/5.0 (X11; Linux i86_64) AppleWebKit/537.36 ' +  '(KHTML, like Gecko) Chrome/41.0.2272.101 Safari/537.36' headers = {'User-Agent': chrome} filename = url.split('/')[-1].strip() r = requests.get(url.strip(), headers=headers, stream=True) with open(filename, 'wb') as f: for chunk in r.iter_content(chunk_size=1024): if chunk:f.write(chunk)f.flush() print filename,"is ok"def removeLine(key, filename): os.system('sed -i /%s/d %s' % (key, filename))if __name__ =="__main__": if len(sys.argv) == 2: filename = sys.argv[1] f = open(filename,"r") p = Pool(4) for line in f.readlines(): if line: p.spawn(download, line.strip()) key = line.split('/')[-1].strip() removeLine(key, filename)f.close()p.join()else: print 'Usage: python %s urls.txt' % sys.argv[0]

其他网友的方法:

from os.path import basenamefrom urlparse import urlsplitdef url2name(url):  return basename(urlsplit(url)[2])def download(url, localFileName = None):  localName = url2name(url)  req = urllib2.Request(url)  r = urllib2.urlopen(req)  if r.info().has_key('Content-Disposition'):    # If the response has Content-Disposition, we take file name from it    localName = r.info()['Content-Disposition'].split('filename=')[1]    if localName[0] == '"' or localName[0] == "'":      localName = localName[1:-1]  elif r.url != url:    # if we were redirected, the real file name we take from the final URL    localName = url2name(r.url)  if localFileName:    # we can force to save the file as specified name    localName = localFileName  f = open(localName, 'wb')  f.write(r.read())  f.close()download(r'你要下载的python文件的url地址')

以上便是本文给大家分享的全部内容了,小伙伴们可以测试下哪种方法效率更高呢。

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)