如何使用Python Selenium爬取单张指定图片并保存到本地文件夹
单张图片爬取实现方案
首先安装需要的第三方依赖:
- 安装requests库用于下载图片:
pip install requests
核心实现逻辑
- 等待搜索结果页加载完成,避免元素未渲染导致定位失败
- 定位首屏可见的第一张幼犬图片元素,提取图片的直链
- 发送网络请求获取图片的二进制数据
- 将二进制数据写入到桌面指定路径的文件中
完整可运行代码
from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC import requests import time # 注意路径前加r转为原始字符串,避免转义符报错 PATH = r"C:\Coding\Codes\Python\edgedriver\msedgedriver.exe" # Selenium 4.x 版本请使用下面的写法初始化浏览器 # from selenium.webdriver.edge.service import Service # driver = webdriver.Edge(service=Service(PATH)) # Selenium 3.x 版本用下方的写法 driver = webdriver.Edge(PATH) driver.maximize_window() driver.get("https://duckduckgo.com/") searchbox = driver.find_element(By.ID, "search_form_input_homepage") searchbox.send_keys("Puppy") searchbox.send_keys(Keys.ENTER) # 等待首屏图片加载完成 wait = WebDriverWait(driver, 10) first_puppy_img = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, ".module--image__img"))) # 提取图片链接 img_url = first_puppy_img.get_attribute("src") # 下载图片二进制内容 img_data = requests.get(img_url).content # 保存到桌面,路径根据自己的实际用户名修改 save_path = r"C:\Users\John\Desktop\首屏幼犬图.jpg" with open(save_path, "wb") as f: f.write(img_data) # 操作完成关闭浏览器 driver.quit()
注意事项
- 如果运行时提示元素定位失败,可以打开浏览器的开发者工具,找到首屏你要保存的那张图片,复制它的CSS选择器替换代码里的
.module--image__img即可 - Windows系统下所有文件路径都建议加
r前缀,避免反斜杠被识别为转义符导致路径错误 - 如果要保存其他位置的图片,只需要调整元素定位规则就能适配
内容的提问来源于stack exchange,提问作者Joshua Balles
相关产品推荐
相关产品推荐

