用requests或者bs4第三方库批量下载百度图片,要求可以多页下载,并放入到相应文件夹。使用pillow第三方库,将获取到的图片批量添加水印文字
时间: 2024-06-08 11:07:29 浏览: 119
以下是一个示例代码,可以用来批量下载百度图片并添加水印:
```python
import requests
from bs4 import BeautifulSoup
from PIL import Image, ImageDraw, ImageFont
import os
# 搜索关键词
keyword = '猫咪'
# 下载页数
num_pages = 3
# 每页图片数量
num_images_per_page = 30
# 水印文字
watermark_text = 'Python小助手'
# 创建文件夹
if not os.path.exists(keyword):
os.mkdir(keyword)
# 循环下载每一页的图片
for i in range(num_pages):
# 构造请求URL
url = f'https://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&queryWord={keyword}&word={keyword}&pn={i*num_images_per_page}&rn={num_images_per_page}'
# 发送请求并解析返回的JSON数据
response = requests.get(url)
json_data = response.json()
for item in json_data['data']:
if 'middleURL' in item:
# 下载图片并保存到文件夹
image_url = item['middleURL']
response = requests.get(image_url)
filename = os.path.join(keyword, f'{item["fromPageTitleEnc"]}.jpg')
with open(filename, 'wb') as f:
f.write(response.content)
# 添加水印
image = Image.open(filename)
draw = ImageDraw.Draw(image)
font = ImageFont.truetype('arial.ttf', 20)
draw.text((10, 10), watermark_text, font=font)
image.save(filename)
```
这个代码会创建一个名为`猫咪`的文件夹,在其中下载百度图片搜索结果的前3页,每页30张图片,然后将每张图片添加上`Python小助手`的水印文字。你可以根据需要修改搜索关键词、下载页数、每页图片数量以及水印文字等参数。
阅读全文