以下是一个使用Python编写的爬取百度图片的脚本。该脚本可以根据关键词爬取指定页数的图片,并将图片保存在指定目录下。
import requests
from bs4 import BeautifulSoup
import os
# 输入关键词和开始/结束页数
word = input("请输入关键词:")
begin_page_num = int(input("请输入开始页数:"))
end_page_num = int(input("请输入结束页数:"))
# 爬取图片的函数
def get_image_urls(word, page_num):
# 构造搜索链接
url = f"https://www.baidu.com/s?wd={word}&pn={page_num*100}"
# 发送请求并获取响应内容
response = requests.get(url)
# 使用BeautifulSoup解析页面内容
soup = BeautifulSoup(response.text, "html.parser")
# 获取所有图片链接
image_urls = []
for img in soup.find_all("img"):
image_urls.append(img.get("src"))
return image_urls
# 保存图片的函数
def save_image(image_url, save_path):
# 发送请求并获取图片内容
response = requests.get(image_url)
# 将图片保存到指定目录
save_path = os.path.join(save_path, os.path.basename(image_url))
with open(save_path, "wb") as f:
f.write(response.content)
# 主程序
if __name__ == "__main__":
# 创建保存图片的目录
save_path = os.path.join(os.getcwd(), word)
if not os.path.exists(save_path):
os.makedirs(save_path)
# 循环爬取指定页数的图片
for page_num in range(begin_page_num, end_page_num+1):
# 获取当前页的图片链接
image_urls = get_image_urls(word, page_num)
# 循环保存图片
for image_url in image_urls:
save_image(image_url, save_path)
使用该脚本时,需要将关键词、开始页数和结束页数输入到脚本中。脚本会根据输入的关键词爬取指定页数的图片,并将图片保存在指定目录下。