ZFB一年一度的【集齊五福,拼手氣分5億】活動火熱進行中
1月24日22:18開獎
2020年新增了【全家福】卡,幫還全家花唄大獎,最高能還48888元
集齊五福就能參加億級大項目了,心動不如行動
今天和大家分享一下,如何一鍵下載海量圖片,花式掃【五福】,喜歡哪張掃那種,當然工作中也是經常用到的,實測“一分鐘1000張左右”。
獲取方法:
公衆號回覆【圖片下載】即可。得到的文件包括:
-
exe文件,人人都可以直接使用的,秒懂秒下載海量圖片。
-
py文件,程序員可以直接使用,隨意拿去二次開發,結合圖形化界面,達到極致用戶體驗。
-
文末有附源代碼。
使用方法:
-
按照提示輸入,你想下載的圖片,比如,輸入【福】回車。
-
然後根據提示輸入,你想下載的圖片數量,比如,輸入【50】回車。
-
下載的圖片會在執行文件(exe或py文件)的同級路徑image文件夾下。
相關截圖:
福
鼠
王者榮耀
英雄聯盟
源代碼:
import requests,time,os,math
#獲取下載的圖片類型
def get_word():
get_word = input('輸入下載的圖片,如【福】【鼠】: ')
while True:
if len(get_word) != 0:
break
else:
get_word = input('輸入錯誤,輸入下載的圖片,如【福】【鼠】: ')
return get_word
#獲取下載的圖片數量
def get_img_num():
get_img_num = input('輸入下載圖片的數量: ')
while True:
if get_img_num.isdigit():
break
else:
get_img_num = input('請輸入數字,再次輸入您要下載圖片數量: ')
return get_img_num
#下載圖片
def down_img(word,img_num):
headers = {
# 標記了請求從什麼設備,什麼瀏覽器上發出,僞裝爲瀏覽器
'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
}
url = 'https://image.baidu.com/search/acjson' # 數據來源 xhr下json數據
page_size = math.ceil(int(img_num)/30) # 圖片數量除以每頁30條數據,向上取整得到分頁頁碼
num = 1
file_path = 'image/'
if os.path.exists(file_path) == False:
os.makedirs(file_path)
for i in range(page_size):
params = {
'tn': 'resultjson_com','ipn': 'rj','ct': '201326592','is': '','fp': 'result',
'queryWord': word,'cl': '2','lm': '-1','ie': 'utf-8','oe': 'utf-8','adpicid': '','st': '-1','z': '','ic': '0','hd': '','latest': '','copyright': '',
'word': word,'s': '','se': '','tab': '','width': '','height': '','face': '0','istype': '2','qc': '','nc': '1','fr': '','expermode': '','force': '',
'pn': page_size*30,'rn': '30','gsm': '','1578970597290': '', # page_size*30 (30,60,90) json數據中每頁30條數據
}
html = requests.get(url,headers=headers,params=params)
for j in range(30):
if num > int(img_num): #下載的圖片數量大於輸入的圖片數量,則停止下載
print('')
print('==========圖片全部下載完成==========')
print('')
print('圖片在image路徑')
print('10秒後自動關閉窗口')
time.sleep(10)
break
img_url = html.json()['data'][j]['middleURL'] # json數據結構
if '.jpg' in img_url or '.jpeg' in img_url or '.png' in img_url: #判斷 如果圖片地址帶後綴,則下載
data = requests.get(img_url).content # 圖片爲二進制數據
with open(file_path+word+' - %d.jpg' % num,'wb') as f: # D盤fu文件夾下存放下載的圖片
f.write(data)
print('已下載%d張圖片了' % num)
num += 1
# time.sleep(1) # 延遲1秒爬取
word = get_word() # 獲取想要下載的圖片
img_num = get_img_num() # 獲取下載圖片的數量
down_img(word,img_num) # 執行下載
秒變大牛,就是這麼簡單~
每週每日,分享Python實戰代碼,入門資料,進階資料,基礎語法,爬蟲,數據分析,web網站,機器學習,深度學習等等。
微信羣(關注「Python家庭」一起輕鬆學Python吧)
QQ ②羣(983031854)