如何编写python程序,爬取百度图片中猫和狗的图片各一百张,并存储至目标文件夹
时间: 2024-06-10 16:05:21 浏览: 105
您好,对于您的问题,您可以使用Python中的requests和os库来完成。以下是一个示例代码:
```python
import requests
import os
# 搜索关键词
keywords = ['猫', '狗']
# 每个关键词的图片数量
num = 100
# 存储目录
save_dir = './images/'
if not os.path.exists(save_dir):
os.makedirs(save_dir)
for kw in keywords:
# 构造百度图片的url,通过关键词进行搜索
url = 'https://image.baidu.com/search/acjson'
params = {
'tn': 'resultjson_com',
'ipn': 'rj',
'ct': 201326592,
'is': '',
'fp': 'result',
'queryWord': kw,
'cl': 2,
'lm': -1,
'ie': 'utf-8',
'oe': 'utf-8',
'adpicid': '',
'st': -1,
'z': '',
'ic': 0,
'word': kw,
's': '',
'se': '',
'tab': '',
'width': '',
'height': '',
'face': 0,
'istype': 2,
'qc': '',
'nc': 1,
'fr': '',
'pn': '',
'rn': 30,
'gsm': '1e0002',
'1525376327534': ''
}
# 发送请求获取图片url
images_url = []
for i in range(num):
params['pn'] = i * params['rn']
res = requests.get(url, params=params)
data = res.json().get('data')
# 解析返回的数据获取图片url
for d in data:
if d.get('thumbURL'):
images_url.append(d.get('thumbURL'))
# 下载图片并保存到本地
for i, url in enumerate(images_url):
res = requests.get(url)
img_path = os.path.join(save_dir, '{}-{}.jpg'.format(kw, i))
with open(img_path, 'wb') as f:
f.write(res.content)
print('已下载:', img_path)
```
这个示例代码会先设置搜索的关键词和每个关键词要获取的图片数量,并通过百度图片的API进行搜索。然后会将搜索到的图片下载到一个指定的目录中。
希望这能解答您的问题,感谢您的提问!
阅读全文