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. 如何用python爬股票数据_python爬虫股票数据,如何用python 爬虫抓取金融数据

    Q1:如何用python 爬虫抓取金融数据 获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为 ...

  2. python处理nc数据_python中的.nc文件处理 | 04 利用矢量边界提取NC数据

    利用矢量边界提取.nc数据 import os import numpy as np import pandas as pd import matplotlib.pyplot as plt impor ...

  3. python怎么批量处理数据_python如何批量处理excel数据?_后端开发

    php赋值运算符有哪些_后端开发 php赋值运算符有:1.[=]赋值运算符:2.[+=]加运算符:3.[-=]减运算符:4.[*=]乘运算符:5.[/=]除运算符:6.[.=]连接字符运算符:7.[% ...

  4. 用python处理excel表格_如何用python处理excel数据 | 用python处理excel表格数据类型

    python 读取EXCEL文件中的数据格式 扩展库 xlrd 读excle xlwt 写excle 直上搜就能下载 下载后使用 import xlrd 就可以读excle了 打开文件: xls = ...

  5. python大数据分析实例-如何用Python分析大数据(以Twitter数据挖掘为例)

    原标题:如何用Python分析大数据(以Twitter数据挖掘为例) 来源:艾翻译(http://www.itran.cc/) 原文标题:Twitter Data Mining: A Guide to ...

  6. Python 获取接口数据,解析JSON,写入文件

    Python 获取接口数据,解析JSON,写入文件 用于练手的例子,从国家气象局接口上获取JSON数据,将它写入文件中,并解析JSON: 总的来说,在代码量上,python代码量要比java少很多.而 ...

  7. oracle批量插入报错,[数据库]Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA

    [数据库]Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA 0 2020-08-19 08:00:06 Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA-009 ...

  8. mysql 批量数据导入报错_Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA

    Mybatis 批量插入数据 关于Oracle 批量插入报错:ORA-00933: SQL 命令未正确结束 问题:用mybaits 批量插入数据到Oracle 数据库的时候, 报错:ORA-00933 ...

  9. 如何用python批量下载数据_Python批量下载地理空间数据云数据!Python无所不能!...

    模拟登录 这里要用到两个包:requests和json.requests使用前得先安装:pip install requests. In [3]: 进群:548377875 即可获取数十套PDF哦! ...

最新文章

  1. Android 10.0 PackageManagerService(三)APK扫描-[Android取经之路]
  2. Xen与KVM虚拟化技术调研报告
  3. 自底向上构建知识图谱全过程
  4. clone是深拷贝还是浅拷贝_go-clone:深拷贝 Go 数据结构
  5. 电大计算机网考选择题多少分,2016年度电大计算机网考选择题及标准答案.doc
  6. hdu 1241Oil Deposits(BFS)
  7. 计算机硬盘正在工作应特别注意避免,初级计算机考试题库
  8. 炸了!亚马逊薪资文件泄露!原来这么多人年薪百万
  9. .net 把一个对象赋值给一个参数_一个可以提升JVM运行性能的参数
  10. 搭建DNS服务,正向解析域名
  11. 拓端tecdat|R语言时间序列分解和异常检测方法应用案例
  12. linux mysql 客户端 服务端_MySQL客户端和服务器端工具集
  13. SSM汽车销售平台的设计与实现毕业设计源码171619
  14. pdf图片怎么转换成word文档?
  15. 适合苹果4s的微信版本_苹果:这些旧 iPhone 有重大缺陷,怕不怕?
  16. Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“(已解决)
  17. 单页面SPA(如react,vue)网站的服务器渲染SSR之SEO大杀器rendertron(超详细配置+避坑)
  18. usb与 hid, 串口 趣谈
  19. html加js动态效果图,JS动态图片的实现方法完整示例
  20. 【Python实验】Numpy基础

热门文章

  1. 二分法查找是基于有序_【二分查找】May1th “First Bad Version (Python3)”
  2. Unity中Web.Config文件的配置与调用
  3. 「懒惰的美德」我用 python 写了个自动生成给文档生成索引的脚本
  4. java兄弟_java实现兄弟孩子树代码
  5. 设计模式系列之九:职责链模式
  6. activemq 修改服务端端口61616和控制台端口8161启动
  7. [搬运] mac下安装GDB
  8. java线程异常终止_java线程莫名异常退出时,如何捕获异常信息
  9. HT for Web中3D流动效果的实现与应用
  10. 什么样的博文才能上首页呢?『博客使用技巧』