用requests第三方库批量下载百度图片,要求可以多页下载,并放入到相应文件夹。使用pillow第三方库,将获取到的图片批量添加水印文字(添加的文字要有个人信息,学号姓名等)
时间: 2024-06-09 14:07:06 浏览: 3
下面是一个示例代码:
```python
import requests
import os
from PIL import Image, ImageDraw, ImageFont
# 百度图片搜索的URL
url = 'https://image.baidu.com/search/acjson'
# 搜索关键词
keyword = '猫'
# 开始页码
start_page = 1
# 结束页码
end_page = 2
# 每页数量
per_page = 30
# 保存路径
save_path = './images'
# 水印文字
watermark_text = '学号:123456789 姓名:张三'
# 字体文件路径
font_path = './fonts/SimHei.ttf'
# 字体大小
font_size = 20
# 颜色
font_color = (255, 255, 255)
# 遍历所有页码
for page in range(start_page, end_page + 1):
# 计算偏移量
offset = (page - 1) * per_page
# 构造请求参数
params = {
'tn': 'resultjson_com',
'ipn': 'rj',
'ct': 201326592,
'is': '',
'fp': 'result',
'queryWord': keyword,
'cl': 2,
'lm': -1,
'ie': 'utf-8',
'oe': 'utf-8',
'adpicid': '',
'st': -1,
'z': '',
'ic': 0,
'word': keyword,
's': '',
'se': '',
'tab': '',
'width': '',
'height': '',
'face': 0,
'istype': 2,
'qc': '',
'nc': 1,
'fr': '',
'pn': offset,
'rn': per_page,
'gsm': '1e',
'1525873749798': ''
}
# 发送请求
response = requests.get(url, params=params)
# 解析JSON数据
data = response.json()
# 遍历所有图片
for item in data['data']:
# 获取图片URL
image_url = item['middleURL']
# 下载图片
response = requests.get(image_url)
# 获取文件名
file_name = os.path.basename(image_url)
# 保存路径
file_path = os.path.join(save_path, file_name)
# 保存图片
with open(file_path, 'wb') as f:
f.write(response.content)
# 添加水印
image = Image.open(file_path)
draw = ImageDraw.Draw(image)
font = ImageFont.truetype(font_path, font_size)
draw.text((10, 10), watermark_text, font=font, fill=font_color)
image.save(file_path)
```
上述代码使用requests库批量下载百度图片,并使用Pillow库添加水印文字。在代码中,可以通过修改`keyword`、`start_page`、`end_page`、`per_page`等参数来控制下载的图片数量和搜索关键词。同时,可以通过修改`save_path`、`watermark_text`、`font_path`、`font_size`、`font_color`等参数来控制保存路径、水印文字和字体样式等。