【python脚本】提供图片url,批量下载命名图片

怼烎@ 2023-10-11 09:44 28阅读 0赞

【python脚本】提供图片url,批量下载命名图片

一、背景

  收到一个小需求,某项目会上传了很多图片,产品想看看用户上传的图片都是啥。

  线上业务表里存了图片url和一些用户ID信息,需要将图片都下载下来并以日期_用户ID等信息命名。起初想的是先输hive服务器地址和账密,执行查询url等信息SQL存在列表里,再遍历列表挨个下载图片。然而我也不知道hive服务器啥的,搜hive查询包也得花点时间。所以直接先查出来保存到csv文件里,再直接下载即可。

二、代码

ContractedBlock.gif ExpandedBlockStart.gif

  1. # -*- coding: utf-8 -*-
  2. import pandas as pd #读取文件
  3. import os #需要拼接路径
  4. import requests #下载图片
  5. '''解决的问题:
  6. 读取"date","uid","qid","url"四个字段的csv文件(注意,date事先改成文本格式的2019-08-19),
  7. 拼接url前缀(提供的url不完整,统一拼接前缀),
  8. 以date_uid_qid命名图片,保存在F:\\img文件路径里。
  9. '''
  10. #定义下载图片函数
  11. def download_img(img_url, api_token,img_name):
  12. print (img_url)
  13. header = {
  14. "Authorization": "Bearer " + api_token} # 设置http header,视情况加需要的条目,这里的token是用来鉴权的一种方式
  15. r = requests.get(img_url, headers=header, stream=True)
  16. print(r.status_code) # 返回状态码
  17. if r.status_code == 200:
  18. imgname = img_name + '.png'
  19. filename = os.path.join('F:\\img', imgname)
  20. open(filename, 'wb').write(r.content) # 将内容写入图片
  21. print(filename)
  22. print("done")
  23. del r
  24. #读取文件,调用下载图片函数
  25. if __name__ == '__main__':
  26. #读取文件
  27. image_url=pd.read_csv("E://image_url.csv",skiprows=1,names=["date","uid","qid","url"])
  28. #文件行数太多,可限制行数先测试看看
  29. image_url_a=image_url.iloc[:, :]
  30. api_token = "fklasjfljasdlkfjlasjflasjfljhasdljflsdjflkjsadljfljsda"
  31. #遍历image_url_a
  32. for index,row in image_url_a.iterrows():
  33. #拼接url前缀
  34. img_url="https://image.gogle.com/"+row['url']
  35. img_name=str(row['date'])+"_"+str(row['uid'])+"_"+str(row['qid'])
  36. #print(img_name)
  37. download_img(img_url, api_token,img_name)

三、其他

然后发现图片都是无背景,字体是白色的,所以缩略图看起来都是一片白,windows图片查看器看也不大好看。

所以,

粗略浏览需要改窗口背景:

没找着

图片查看需要改图片查看背景颜色:

如何更改Windows图片查看器背景颜色

posted on 2019-08-20 18:59 everda 阅读( …) 评论( …) 编辑 收藏

转载于:https://www.cnblogs.com/everda/p/11384916.html

发表评论

表情:
评论列表 (有 0 条评论,28人围观)

还没有评论,来说两句吧...

相关阅读