【python脚本】提供图片url,批量下载命名图片
【python脚本】提供图片url,批量下载命名图片
一、背景
收到一个小需求,某项目会上传了很多图片,产品想看看用户上传的图片都是啥。
线上业务表里存了图片url和一些用户ID信息,需要将图片都下载下来并以日期_用户ID等信息命名。起初想的是先输hive服务器地址和账密,执行查询url等信息SQL存在列表里,再遍历列表挨个下载图片。然而我也不知道hive服务器啥的,搜hive查询包也得花点时间。所以直接先查出来保存到csv文件里,再直接下载即可。
二、代码
# -*- coding: utf-8 -*-
import pandas as pd #读取文件
import os #需要拼接路径
import requests #下载图片
'''解决的问题:
读取"date","uid","qid","url"四个字段的csv文件(注意,date事先改成文本格式的2019-08-19),
拼接url前缀(提供的url不完整,统一拼接前缀),
以date_uid_qid命名图片,保存在F:\\img文件路径里。
'''
#定义下载图片函数
def download_img(img_url, api_token,img_name):
print (img_url)
header = {
"Authorization": "Bearer " + api_token} # 设置http header,视情况加需要的条目,这里的token是用来鉴权的一种方式
r = requests.get(img_url, headers=header, stream=True)
print(r.status_code) # 返回状态码
if r.status_code == 200:
imgname = img_name + '.png'
filename = os.path.join('F:\\img', imgname)
open(filename, 'wb').write(r.content) # 将内容写入图片
print(filename)
print("done")
del r
#读取文件,调用下载图片函数
if __name__ == '__main__':
#读取文件
image_url=pd.read_csv("E://image_url.csv",skiprows=1,names=["date","uid","qid","url"])
#文件行数太多,可限制行数先测试看看
image_url_a=image_url.iloc[:, :]
api_token = "fklasjfljasdlkfjlasjflasjfljhasdljflsdjflkjsadljfljsda"
#遍历image_url_a
for index,row in image_url_a.iterrows():
#拼接url前缀
img_url="https://image.gogle.com/"+row['url']
img_name=str(row['date'])+"_"+str(row['uid'])+"_"+str(row['qid'])
#print(img_name)
download_img(img_url, api_token,img_name)
三、其他
然后发现图片都是无背景,字体是白色的,所以缩略图看起来都是一片白,windows图片查看器看也不大好看。
所以,
粗略浏览需要改窗口背景:
没找着
图片查看需要改图片查看背景颜色:
如何更改Windows图片查看器背景颜色
posted on 2019-08-20 18:59 everda 阅读( …) 评论( …) 编辑 收藏
转载于//www.cnblogs.com/everda/p/11384916.html
还没有评论,来说两句吧...