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.
  • 相关阅读:
    Blank page instead of the SharePoint Central Administration site
    BizTalk 2010 BAM Configure
    Use ODBA with Visio 2007
    Handling SOAP Exceptions in BizTalk Orchestrations
    BizTalk与WebMethods之间的EDI交换
    Append messages in BizTalk
    FTP protocol commands
    Using Dynamic Maps in BizTalk(From CodeProject)
    Synchronous To Asynchronous Flows Without An Orchestration的简单实现
    WSE3 and "Action for ultimate recipient is required but not present in the message."
  • 原文地址:https://www.cnblogs.com/everda/p/11384916.html
Copyright © 2011-2022 走看看