一、背景
收到一個小需求,某項目會上傳了很多圖片,產品想看看用戶上傳的圖片都是啥。
線上業務表里存了圖片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圖片查看器看也不大好看。
所以,
粗略瀏覽需要改窗口背景:
沒找着
圖片查看需要改圖片查看背景顏色: