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地址')

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

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

python批量下载文件-Python实现批量下载文件相关推荐

  1. python批量下载文件-python使用selenium实现批量文件下载

    背景 实现需求:批量下载联想某型号的全部驱动程序. 一般在做网络爬虫的时候,都是保存网页信息为主,或者下载单个文件.当涉及到多文件批量下载的时候,由于下载所需时间不定,下载的文件名不定,所以有一定的困 ...

  2. python批量下载网页文件-Python实现批量下载文件

    Python实现批量下载文件 #!/usr/bin/env python # -*- coding:utf-8 -*- from gevent import monkey monkey.patch_a ...

  3. python批量下载文件只有1kb_Python 实现批量从不同的Linux服务器下载文件

    基于Python实现批量从不同的Linux服务器下载文件 by:授客 QQ:1033553122 实现功能 批量从不同的Linux服务器下载指定文件 测试环境 Win7 64位 Python 3.3. ...

  4. Python 实现批量从不同的Linux服务器下载文件

    基于Python实现批量从不同的Linux服务器下载文件   by:授客 QQ:1033553122 实现功能 1 测试环境 1 使用方法 1 1. 编辑配置文件conf/file_for_downl ...

  5. python批量下载网页文件夹_Python实现批量从不同的Linux服务器下载文件

    基于Python实现批量从不同的Linux服务器下载文件 by:授客 实现功能 批量从不同的Linux服务器下载指定文件 测试环境 Win7 64位 Python 3.3.2 pscp 64位 下载地 ...

  6. 如何用python批量下载数据_Python实现批量下载文件

    Python实现批量下载文件 #!/usr/bin/env python # -*- coding:utf-8 -*- from gevent import monkey monkey.patch_a ...

  7. python 下载文件-Python实现批量下载文件

    Python实现批量下载文件 #!/usr/bin/env python # -*- coding:utf-8 -*- from gevent import monkey monkey.patch_a ...

  8. 使用python批量下载需要的分子的SDF文件

    使用python批量下载需要的分子的SDF文件 这里需要借助python的第三方库pubchempy (可以使用pip安装:pip install pubchempy) 首先定义文件的路径(这里的文件 ...

  9. python实战!智能翻页批量下载文件

    python爬虫遇到爬取文件内容时,需要一页页的翻页爬取,这样很是麻烦,其实可以获取每个列表信息下的文件名和文件链接,让文件名和文件链接处理为列表,保存后下载,实现智能翻页批量下载文件,本文以以京客隆 ...

最新文章

  1. 一行CSS样式去除百度地图版权,去除百度地图右上角平移缩放控件的市县区文字
  2. 我有点不喜欢分布式中的TCC模式了
  3. 皮一皮:现在真是键盘侠的年代阿....
  4. 20170728xlVBA改转置一例
  5. c++ primer 第14章 习题解答
  6. JVM--对象的实例化过程
  7. nyoj_66_分数拆分_201312012122
  8. java sql2008的增删改查_SQL server数据库增删改查练习
  9. drupal与html转换,在Drupal中将HTMl添加到CCK
  10. Java模拟HTTP的Get和Post请求(增强)
  11. 2 str转byte失败_android 4.2的多线程库加载崩溃问题
  12. Rust基础概念之函数
  13. P2915 [USACO08NOV] Mixed Up Cows
  14. 支付宝架构到底有多牛逼?看完这篇你就明白了!
  15. 给年轻人几点买房建议
  16. idesk卸载教程_iDesk助手使用帮助
  17. 0928多线程运行——作业
  18. 极光IM即时通讯初探
  19. Spring Cloud Alibaba RocketMQ 快速入门
  20. Tomcat8安装与配置

热门文章

  1. 【操作系统】进程间通信
  2. 依赖注入及AOP简述(一)——“依赖”的概念 .
  3. Linux 集群时钟同步
  4. 使用Martix来实现缩放图片的功能
  5. [BZOJ4556][TJOI2016HEOI2016]字符串(二分答案+后缀数组+RMQ+主席树)
  6. Google首页电吉
  7. python第三方库有哪些常用的、请列举15个-你想要的Python面试都在这里了【315+道题】...
  8. python类型-Python入门之类(class)
  9. python官网地址-python官网网址
  10. python项目-你肯定想学习的顶级Python项目(附代码)