import requests
def get_img_url(keyword):
"""发送请求,获取接口中的数据"""
# 接口链接
url = 'https://image.baidu.com/search/acjson?'
# 请求头模拟浏览器
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'}
# 构造网页的params表单
params = {
'tn': 'resultjson_com',
'logid': '6918515619491695441',
'ipn': 'rj',
'ct': '201326592',
'is': '',
'fp': 'result',
'queryWord': f'{keyword}',
'word': f'{keyword}',
'cl': '2',
'lm': '-1',
'ie': 'utf-8',
'oe': 'utf-8',
'adpicid': '',
'st': '-1',
'z': '',
'ic': '',
'hd': '',
'latest': '',
'copyright': '',
's': '',
'se': '',
'tab': '',
'width': '',
'height': '',
'face': '0',
'istype': '2',
'qc': '',
'nc': '1',
'fr': '',
'expermode': '',
'force': '',
'cg': 'girl',
'pn': 1,
'rn': '30',
'gsm': '1e',
}
# 携带请求头和params表达发送请求
response = requests.get(url=url, headers=headers, params=params)
# 设置编码格式
response.encoding = 'utf-8'
# 转换为json
json_dict = response.json()
# 定位到30个图片上一层
data_list = json_dict['data']
# 删除列表中最后一个空值
del data_list[-1]
# 用于存储图片链接的列表
img_url_list = []
for i in data_list:
img_url = i['thumbURL']
# 打印一下图片链接
# print(img_url)
img_url_list.append(img_url)
# 返回图片列表
return img_url_list
if __name__ == '__main__':
keyword = "小姐姐"
# keyword入参:搜索关键词
get_img_url(keyword)
import os
import requests
from get_img_url import get_img_url
def get_down_img(img_url_list):
# 创建一个文件夹来保存图片
if not os.path.exists('images'):
os.makedirs('images')
# 在当前路径下生成存储图片的文件夹
for index, image_url in enumerate(img_url_list):
# 将图片写入指定位置
response = requests.get(image_url)
with open(f"images/image_{index}.jpg", 'wb') as f:
f.write(response.content)
if __name__ == '__main__':
# 1. 修改关键词
keyword = '小姐姐'
# 2. 获取指定关键词的图片链接
img_url_list = get_img_url(keyword)
# 3. 下载图片到指定位置
get_down_img(img_url_list)