如何用 Python写一个批量爬取百度图片代码
时间: 2024-06-10 19:06:45 浏览: 175
Python百度批量爬取图片
以下是一个使用 Python 的 requests 和 os 模块实现批量下载百度图片的代码示例:
```python
import requests
import os
def download_images(keyword, num_images):
url = 'https://image.baidu.com/search/acjson'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36',
}
# 创建目录
if not os.path.exists(keyword):
os.makedirs(keyword)
# 请求参数配置
params = {
'tn': 'resultjson_com',
'ipn': 'rj',
'queryWord': keyword,
'word': keyword,
'pn': 0,
'rn': 30,
'gsm': '1e',
'1488942260214': ''
}
for i in range(num_images):
params['pn'] = i * 30
res = requests.get(url, params=params, headers=headers)
for j in range(30):
try:
img_url = res.json().get('data')[j].get('middleURL')
img_res = requests.get(img_url)
with open(keyword + '/img_' + str(i * 30 + j) + '.jpg', 'wb') as f:
f.write(img_res.content)
print('成功下载图片 %s_%s.jpg' % (keyword, str(i * 30 + j)))
except Exception as e:
print('获取图片失败')
print(e)
# 测试
download_images('猫', 10)
```
这段代码可以下载指定数量的百度图片,并按照关键词分类保存在相应的文件夹中。如果需要下载不同关键词的图片,只需要修改 `download_images()` 函数的参数即可。注意,该代码可能会因为并发下载过于频繁被百度封禁 IP,建议使用时谨慎。
阅读全文