先导入所需要的模块 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': '2','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': '','90': '', # 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('图片在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秒爬取
终端执行打包exe命令1.如果没有安装pyinstaller模块,则先打开cmd(windows+R输入cmd回车),输入pip install pyinstaller2.项目终端输入pyinstaller -F 文件名.py
大功告成,双击.exe文件,根据提示输入数据吧
有任何问题,随时联系小编喔