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

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

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

  1. Lrc歌词批量下载助手 MP3歌词批量下载助手

    Lrc歌词批量下载助手  MP3歌词批量下载助手   易歌词的服务器已经挂掉,各个主流播放器已不提供明确的下载Lrc服务,当上G的MP3文件遇上苦逼的播放器,二缺就诞生了!本软件就是在这种背景下诞生的 ...

  2. 如何批量新建文件夹,批量新建文件夹并命名

    如何批量新建文件夹并命名?有时候我们经常需要创建大量的文件夹,来完成某些工作,相信很多上班族都遇到过.不过也都存在这样困扰,一个一个新建并且命名速度太慢了,占用了大量的上班时间,却毫无办法.那是因为大 ...

  3. 下载网页图片-如何批量下载网页图片-批量图片下载工具免费

    下载网页图片,今天给大家分享一款免费批量下载网页图片软件,支持任意格式的图片批量下载,只需要输入关键词或批量导入网页链接即可下载图片.批量下载任意网页上的图片,每个人都可以拥有各种高清图源.支持批量图 ...

  4. IDM(功能强大的下载工具)IDM可以批量下载视频吗?

    IDM是指Internet Download Manager,是一款功能强大的下载工具软件.它可以加速下载速度,支持断点续传,还可以自动捕捉下载链接,方便用户进行下载管理.同时,IDM还支持多任务下载 ...

  5. python自动下载邮件附件_Python批量下载电子邮件附件并汇总合并Excel文件

    原标题:Python批量下载电子邮件附件并汇总合并Excel文件 前几天在公众号搞了一波送书活动,详见福利:免费赠送240本Python教材,该文推送之后,立刻收到了大量的样书申请表,那么接下来的工作 ...

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

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

  7. 写bat文件for循环批量创建文件夹

    写bat文件for循环批量创建文件夹 系统:win10 批量创建数字文件夹(0-20) for /l %%a in (0,1,20) do md %%a 这里/l表示数字,括号中的数字依次是起始数字, ...

  8. 如何使用python批量下载-用Python调用迅雷实现后台批量下载

    迅雷9.10实测可用,老版本迅雷应该也可以用,不推荐迅雷极速版 写在前面 最近在学习python的网络爬虫,想要爬取某个网站上的上百万条链接,批量下载链接所指向的图片.文档.视频等内容.大部分的小文件 ...

  9. python设置文件编码_python批量修改文件编码格式的方法

    本文实例为大家分享了python批量修改文件编码格式的具体代码,供大家参考,具体内容如下 使用说明: 1.使用工具:Python2.7.6+chardet2.3.0,chardet2.3.0下载地址: ...

  10. python webdriver save_Python + Selenium +Chrome 批量下载网页代码修改【新手必学】

    Python + Selenium +Chrome 批量下载网页代码修改 主要修改以下代码可以调用 本地的 user-agent.txt 和 cookie.txt 来达到在登陆状态下 批量打开并下载网 ...

最新文章

  1. python使用笔记:pynput库控制键盘鼠标
  2. Linux下防止文件误删方法
  3. c语言指针中冒号的用法,在c中使用冒号后面的类名
  4. LINQ to SQL学习的几个问题
  5. 2020年中国智能客服行业研究报告
  6. python用代码执行另一个python文件
  7. 个人计算机硬件构成的叙述正确的是,2010年职称计算机考试模拟试题及答案(计算机基础)2...
  8. baidu 地图 鼠标移上显示标签 鼠标离开隐藏标签
  9. 为什么有些人看起来年纪轻轻,但思想深度和高度却远高于常人?
  10. 如何在报表的Header和Footer中使用DataSet中的Field
  11. (76) Clojure: Why would someone learn Clojure? - Quora
  12. linux nfs共享目录访问速度慢,linux之间共享文件夹选nfs还是选samba--
  13. 电话号码字母组合java代码回溯法力扣
  14. PostgreSQL 一复合查询SQL优化例子 - (多个exists , 范围检索 , IN检索 , 模糊检索 组合)...
  15. mplfinance 一个堪称完美python量化金融可视化工具详析
  16. 2018年6月编程语言tiobe排行
  17. Android百度语音识别/语音助手
  18. Vue使用Pinia实现状态管理
  19. 封装 发送socket api遇到的坑(涉及数据格式转换)
  20. XMAPP Apache 异常处理

热门文章

  1. python-数字(int)知识整理
  2. python 小兵(2)
  3. linux php安装配置oci8模块
  4. H5自带的type=date或者month等日期控件移动端显示placeholder
  5. ExpandRegion for Sublime Text:快速选择文本
  6. 从头开始学JavaScript (十三)——Date类型
  7. Oracle 11.2.4.0 ACTIVE DATAGUARD 单实例安装(COPY创建备库)
  8. 单独使用ckfinder选择图片
  9. Competitive Programming专题题解(1)
  10. keras + tensorflow —— 训练参数数目的计算