在以上代码的基础上,加上抓取图像总数的功能
时间: 2024-03-07 14:54:18 浏览: 21
好的,以下是在之前代码的基础上加上抓取图像总数的功能的代码:
```python
import requests
import os
# 输入搜索关键词和保存路径
keyword = input("请输入搜索关键词:")
save_path = input("请输入保存路径:")
# 输入需要抓取的图片数量
num_images = int(input("请输入需要抓取的图片数量:"))
# 创建保存路径
if not os.path.exists(save_path):
os.makedirs(save_path)
# 构造搜索链接
url = "https://www.google.com/search?q={}&tbm=isch".format(keyword)
# 添加请求头部信息
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"}
# 发送请求
response = requests.get(url, headers=headers)
# 解析返回的HTML页面
html = response.text
start = html.find("class=\"rg_i\"")
count = 0 # 计数器,记录已经抓取的图片数量
while start != -1 and count < num_images:
# 获取图片链接
start = html.find("data-src", start) + 10
end = html.find("\"", start)
img_url = html[start:end]
# 下载图片并保存到指定路径下
try:
response = requests.get(img_url)
with open(os.path.join(save_path, os.path.basename(img_url))), "wb") as f:
f.write(response.content)
count += 1
except:
pass
# 继续查找下一张图片
start = html.find("class=\"rg_i\"", end)
print("共抓取了{}张图片!".format(count))
```
在这个代码中,我们添加了一个计数器`count`,来记录已经抓取的图片数量。同时,我们在while循环的条件中增加了一个`count < num_images`的条件,表示只有抓取的图片数量小于用户输入的数量时,才会继续往下抓取图片。在每次成功下载并保存图片后,我们增加了计数器的值,表示已经抓取了一张图片。最后输出抓取的图片总数。