Python爬虫如何下载图片?
1、先导入所需要的模块
import requests,time,os,math

2、获取下载的图片类型,函数,方便调用
def get_word():
get_word = input('输入下载的图片,如【福】【鼠】: ')
while True:
if len(get_word) != 0:
break
else:
get_word = input('输入错误,输入下载的图片,如【福】【鼠】: ')
return get_word

3、
获取下载的图片数量,函数,方便调用
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

4、下载图片,函数,方便调用
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('图片在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秒爬取

5、终端执行打包exe命令
1.如果没有安装pyinstaller模块,则先打开cmd(windows+R输入cmd回车),输入pip install pyinstaller
2.项目终端输入pyinstaller -F 文件名.py

6、大功告成,双击.exe文件,根据提示输入数据吧
