Python实现批量下载文件
#!/usr/bin/env python # -*- coding:utf-8 -*- from gevent import monkey monkey.patch_all() from gevent.pool import Pool import requests import sys import os def 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 basename from urlparse import urlsplit def 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地址')
以上便是本文给大家分享的全部内容了,小伙伴们可以测试下哪种方法效率更高呢。
本文向大家介绍java线程池实现批量下载文件,包括了java线程池实现批量下载文件的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java线程池实现批量下载文件的具体代码,供大家参考,具体内容如下 1 创建线程池 2 批量下载文件 3 测试批量下载文件 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
本文向大家介绍Python实现批量下载图片的方法,包括了Python实现批量下载图片的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现批量下载图片的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Python程序设计有所帮助。
本文向大家介绍java实现批量下载 多文件打包成zip格式下载,包括了java实现批量下载 多文件打包成zip格式下载的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java实现批量下载的具体代码,供大家参考,具体内容如下 现在的需求的: 根据产品族、产品类型,下载该产品族、产品类型下面的pic包; pic包是zip压缩文件; t_product表: 这些包以blob形式存在另一张表
本文向大家介绍Nodejs实现批量下载妹纸图,包括了Nodejs实现批量下载妹纸图的使用技巧和注意事项,需要的朋友参考一下 听说最近下载妹子图很火? Nodejs (javascrpt)自然不能落后~ 虽然从没写过像样的Nodejs程序,但作为至少翻过书的前端同学来说,Nodejs用得还蛮顺手的哈~ 花了一点事件学习了下Nodejs的网页获取和文件下载方法,没事乱捣腾就写了这个半成品的下载器 使用
本文向大家介绍python Selenium实现付费音乐批量下载的实现方法,包括了python Selenium实现付费音乐批量下载的实现方法的使用技巧和注意事项,需要的朋友参考一下 必备环境 废话 每年回家都要帮我爸下些音乐,这对我来说都是轻车熟路!可当我打开网易云点击下载按钮的时候,可惜已物是人非啦! 开个 VIP 其实也不贵,临时用用也就¥15!但 IT 男的尊严必须要有,于是开始徜徉于搜索
本文向大家介绍python实现批量文件重命名,包括了python实现批量文件重命名的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python批量文件重命名的具体代码,供大家参考,具体内容如下 问题描述 最近遇到朋友求助,如何将大量文件名前面的某些字符删除。 即将图中文件前的编号删除。 Python实现 用到了python中的os模块,os模块中的rename方法可以实现对文件的重命