zoukankan      html  css  js  c++  java
  • 【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)
    View Code

     三、其他

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

    所以,

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

    没找着

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

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

    Without summary,you can't master it.
  • 相关阅读:
    2013寒假ACM集训_最小生成树
    hdu 1025 Constructing Roads In JGShining's Kingdom
    拓扑排序模版hdu 1285 确定比赛名次
    HDU 1232 并查集
    2013寒假ACM集训_最短路
    字典树 sdut acm 1500 Message Flood
    优化后的 求素数
    HDU 1253 三维搜索bfs
    sdut 2176 递归的函数
    HDU 1176 免费馅饼
  • 原文地址:https://www.cnblogs.com/everda/p/11384916.html
Copyright © 2011-2022 走看看