python requests下载图片_Python 3.4.3批量下载图片

这是一个使用Python的urllib库实现的批量下载图片的脚本。脚本中定义了一个`kl_download`类,包含`downfile`和`downimage`方法分别用于下载文件和图片。脚本还包含一个回调函数`callbackfunc`来显示下载进度。在主函数中,通过传入一个包含多个图片URL的字符串,脚本将这些图片下载到指定的目录。
摘要由CSDN通过智能技术生成

有时候我们手边会整理出一些需要下载的文件图片等地址,下面提供一个指下载的python脚本

import urllib.request

import sys

import os

import socket

socket.setdefaulttimeout(60)

#创建目录

def create_dir(dirpath):

if not os.path.exists(dirpath):

os.makedirs(dirpath)

class kl_download(object):

"""docstring for download"""

def __init__(self, arg=None):

super(kl_download, self).__init__()

self.arg = arg

def callbackfunc(self,blocknum, blocksize, totalsize):

'''回调函数

@blocknum: 已经下载的数据块

@blocksize: 数据块的大小

@totalsize: 远程文件的大小

'''

global url

percent = 100.0 * blocknum * blocksize / totalsize

if percent >= 100:

percent = 100

downsize=blocknum * blocksize

if downsize >= totalsize:

downsize=totalsize

if __name__ == "__main__":

s ="%.2f%%=>%.2f B/%.2f B \r"%(percent,downsize,totalsize)

sys.stdout.write(s)

sys.stdout.flush()

if percent == 100:

print('')

return True

def downfile(self,url,outdir='',outfilename=''):

if not outfilename:

outfilename=os.path.basename(url)

try:

create_dir(outdir)

filepath=outdir+'/'+outfilename

urllib.request.urlretrieve(url, filepath, self.callbackfunc)

return filepath

except Exception as e:

print(e)

return None

def downimage(self,url,outdir='./',outfilename=''):

if not outfilename:

outfilename=os.path.basename(url)

try:

create_dir(outdir)

filepath=outdir+'/'+outfilename

opener=urllib.request.build_opener()

req=urllib.request.Request(url)

req.add_header('Referer',url)

req.add_header('User-Agent','Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;')

r=opener.open(req)

#写文件到本地

respHtml = r.read();

binfile = open(filepath, "wb");

binfile.write(respHtml);

binfile.close();

return filepath

except Exception as e:

print(e)

return None

if __name__ == "__main__":

download=kl_download()

s='http://i.gtimg.cn/qzone/space_item/orig/8/116120_top.jpg,http://i.gtimg.cn/qzone/space_item/orig/13/116125_top.jpg,http://i.gtimg.cn/qzone/space_item/orig/3/115283_top.jpg,http://i.gtimg.cn/qzone/space_item/orig/15/115279_top.jpg'

outdir="./downs/pifu"

a=s.split(',')

for i in a:

print(i+"\n")

download.downfile(i,outdir)

print('下载完毕')

os.system("pause")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值