使用爬虫获取了图片链接,想要保存在本地却不知道如何操作,请看下文~
下面的代码有两个函数:
get_url
- 输入参数data_file是文件路径
- 目的:从csv文件里获取图片链接,并将链接保存为一个列表。
get_img
- 输入参数img_url是图片链接,比如 ‘https://images.media-allrecipes.com/userphotos/300x300/984477.jpg’
- 输入参数file_path 是图片保存地址,比如’D:/breakfast/img’
- 目的:从图片链接下载图片到本地
下面的代码实现了从csv文件获取url链接并批量下载到本地的功能。
import os, stat
import urllib.request
import csv
def get_url(data_file):
url_list = []
linenum = 0
with open(data_file, "r") as f:
w = csv.reader(f, delimiter=',')
for line in w:
if linenum == 0:
linenum += 1
continue
url_list.append(line[-1])
return url_list
def get_img(img_url,file_path):
file_name = img_url[-10:-4]
try:
# 是否有这个路径
if not os.path.exists(file_path):
# 创建路径
os.makedirs(file_path)
# 获得图片后缀
file_suffix = os.path.splitext(img_url)[1]
print(file_suffix)
# 拼接图片名(包含路径)
filename = '{}{}{}{}'.format(file_path, os.sep, file_name, file_suffix)
print(filename)
# 下载图片,并保存到文件夹中
urllib.request.urlretrieve(img_url, filename=filename)
except IOError as e:
print("IOError")
except Exception as e:
print("Exception")
if __name__ == "__main__":
file_path = 'D:/breakfast/img'
url_list = get_url("../data/breakfast.csv")
for url in url_list:
get_img(url,file_path)