您的位置 首页 > 数码极客

如何将爬出来的多张图片

前言

相信大家都做过很多的python项目吧,是不是很有趣呀,本节为大家介绍一个爬取大量图片的案例,加深大家的知识

废话少说,上代码

首先导入库

import os import json import requests import time

获取所有图片组的信息

def get_info(): """ 获取所有图片组的信息 """ res = [] with open('data;, 'r') as f: for line in f: data = j(line) res.extend(data['data']['list']) return res

获取要下载的所有图片url、目录名、要存储的名字

def get_info_imgs(info): """ 获取要下载的所有图片url、目录名、要存储的名字 """ res = [] for item in info: nickname = item["author"]["nickname"] catalog = item["source"]["catalog"] name = item["source"]["name"] issue = item["issue"] pictureCount = item["pictureCount"] for pic_idx in range(pictureCount): # url = "http://aiss-1254233499.costj.myqcloud.com/picture/%s/%s/%s.jpg" % (catalog, issue, pic_idx) url = "http://tuigirl-1254818389.cosbj.myqcloud.com/picture/%s/%s/%s.jpg" % (catalog, issue, pic_idx) directory = os.("data", name, "%s-%s" % (issue, nickname)) filepath = os.(directory, "%s.jpg" % pic_idx) # 每张图片一组,包含 图片url,所在目录,存储路径 res.append(( url, directory, filepath )) return res

学习从来不是一个人的事情,要有个相互监督的伙伴,工作需要学习python或者有兴趣学习python的伙伴可以私信回复小编“学习” 领取全套免费python学习资料、视频()装包

设置文件夹,文件夹名为传入的 directory 参数,若不存在会自动创建

def setup_download_dir(directory): """ 设置文件夹,文件夹名为传入的 directory 参数,若不存在会自动创建 """ if not os.(directory): try: os.makedirs(directory) except Exception as e: pass return True from multiprocessing import Process, Queue, Pool

下载一张图片

def download_one(img): """ 下载一张图片 """ url, directory, filepath = img # 如果文件已经存在,放弃下载 if os.(filepath): print('exists:', filepath) return setup_download_dir(directory) rsp = reque(url) print('start download', url) with open(filepath, 'wb') as f: f.write) print('end download', url)

并发下载所有图片

def download(imgs, processes=10): """ 并发下载所有图片 """ start_time = () pool = Pool(processes) for img in imgs: (download_one, (img, )) () () end_time = () print('下载完毕,用时:%s秒' % (end_time - start_time))

执行函数

if __name__ == "__main__": info = get_info() imgs = get_info_imgs(info) download(imgs, processes=10)

哈哈,是不是步骤明确呀?欢迎大家一起学习,一起交流,共同进步

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“如何将爬出来的多张图片”边界阅读