python 下载文件-Python实现批量下载文件
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实现批量下载文件相关推荐
- Lrc歌词批量下载助手 MP3歌词批量下载助手
Lrc歌词批量下载助手 MP3歌词批量下载助手 易歌词的服务器已经挂掉,各个主流播放器已不提供明确的下载Lrc服务,当上G的MP3文件遇上苦逼的播放器,二缺就诞生了!本软件就是在这种背景下诞生的 ...
- 如何批量新建文件夹,批量新建文件夹并命名
如何批量新建文件夹并命名?有时候我们经常需要创建大量的文件夹,来完成某些工作,相信很多上班族都遇到过.不过也都存在这样困扰,一个一个新建并且命名速度太慢了,占用了大量的上班时间,却毫无办法.那是因为大 ...
- 下载网页图片-如何批量下载网页图片-批量图片下载工具免费
下载网页图片,今天给大家分享一款免费批量下载网页图片软件,支持任意格式的图片批量下载,只需要输入关键词或批量导入网页链接即可下载图片.批量下载任意网页上的图片,每个人都可以拥有各种高清图源.支持批量图 ...
- IDM(功能强大的下载工具)IDM可以批量下载视频吗?
IDM是指Internet Download Manager,是一款功能强大的下载工具软件.它可以加速下载速度,支持断点续传,还可以自动捕捉下载链接,方便用户进行下载管理.同时,IDM还支持多任务下载 ...
- python自动下载邮件附件_Python批量下载电子邮件附件并汇总合并Excel文件
原标题:Python批量下载电子邮件附件并汇总合并Excel文件 前几天在公众号搞了一波送书活动,详见福利:免费赠送240本Python教材,该文推送之后,立刻收到了大量的样书申请表,那么接下来的工作 ...
- 如何用python批量下载数据_Python实现批量下载文件
Python实现批量下载文件 #!/usr/bin/env python # -*- coding:utf-8 -*- from gevent import monkey monkey.patch_a ...
- 写bat文件for循环批量创建文件夹
写bat文件for循环批量创建文件夹 系统:win10 批量创建数字文件夹(0-20) for /l %%a in (0,1,20) do md %%a 这里/l表示数字,括号中的数字依次是起始数字, ...
- 如何使用python批量下载-用Python调用迅雷实现后台批量下载
迅雷9.10实测可用,老版本迅雷应该也可以用,不推荐迅雷极速版 写在前面 最近在学习python的网络爬虫,想要爬取某个网站上的上百万条链接,批量下载链接所指向的图片.文档.视频等内容.大部分的小文件 ...
- python设置文件编码_python批量修改文件编码格式的方法
本文实例为大家分享了python批量修改文件编码格式的具体代码,供大家参考,具体内容如下 使用说明: 1.使用工具:Python2.7.6+chardet2.3.0,chardet2.3.0下载地址: ...
- python webdriver save_Python + Selenium +Chrome 批量下载网页代码修改【新手必学】
Python + Selenium +Chrome 批量下载网页代码修改 主要修改以下代码可以调用 本地的 user-agent.txt 和 cookie.txt 来达到在登陆状态下 批量打开并下载网 ...
最新文章
- python使用笔记:pynput库控制键盘鼠标
- Linux下防止文件误删方法
- c语言指针中冒号的用法,在c中使用冒号后面的类名
- LINQ to SQL学习的几个问题
- 2020年中国智能客服行业研究报告
- python用代码执行另一个python文件
- 个人计算机硬件构成的叙述正确的是,2010年职称计算机考试模拟试题及答案(计算机基础)2...
- baidu 地图 鼠标移上显示标签 鼠标离开隐藏标签
- 为什么有些人看起来年纪轻轻,但思想深度和高度却远高于常人?
- 如何在报表的Header和Footer中使用DataSet中的Field
- (76) Clojure: Why would someone learn Clojure? - Quora
- linux nfs共享目录访问速度慢,linux之间共享文件夹选nfs还是选samba--
- 电话号码字母组合java代码回溯法力扣
- PostgreSQL 一复合查询SQL优化例子 - (多个exists , 范围检索 , IN检索 , 模糊检索 组合)...
- mplfinance 一个堪称完美python量化金融可视化工具详析
- 2018年6月编程语言tiobe排行
- Android百度语音识别/语音助手
- Vue使用Pinia实现状态管理
- 封装 发送socket api遇到的坑(涉及数据格式转换)
- XMAPP Apache 异常处理
热门文章
- python-数字(int)知识整理
- python 小兵(2)
- linux php安装配置oci8模块
- H5自带的type=date或者month等日期控件移动端显示placeholder
- ExpandRegion for Sublime Text:快速选择文本
- 从头开始学JavaScript (十三)——Date类型
- Oracle 11.2.4.0 ACTIVE DATAGUARD 单实例安装(COPY创建备库)
- 单独使用ckfinder选择图片
- Competitive Programming专题题解(1)
- keras + tensorflow —— 训练参数数目的计算