如何按顺序保存图片?附Selenium代码示例
按顺序保存图片的修正方案
你的代码存在几处问题,以下是修正后的完整实现,能按image01.jpg、image02.jpg的格式顺序保存图片:
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager import urllib.request # 初始化Chrome驱动 driver = webdriver.Chrome(service=Service(ChromeDriverManager().install())) # 替换为你要爬取图片的目标网页URL driver.get("https://example.com") # 获取所有带src属性的img元素(使用find_elements复数方法,修正By.XPATH的空格错误) elements = driver.find_elements(By.XPATH, "//img[@src]") # 遍历元素并按顺序保存图片 for index, element in enumerate(elements, start=1): # 获取图片src属性 img_src = element.get_attribute("src") # 生成带两位数序号的文件名 filename = f"C:\\image\\image{index:02d}.jpg" # 下载并保存图片 urllib.request.urlretrieve(img_src, filename) # 关闭浏览器 driver.quit()
关键修改说明:
- 补全依赖导入:添加
import urllib.request,否则无法调用urlretrieve方法 - 完善驱动初始化:补充Chrome驱动启动代码,确保浏览器能正常访问目标网页
- 修正元素定位:将
driver.find_element改为driver.find_elements(复数)以获取所有图片元素;同时修正By. XPATH的空格错误为By.XPATH - 统一变量名:循环中使用
element变量获取属性,避免原代码中element和imagem的变量名混乱 - 生成有序文件名:用
enumerate从1开始计数,通过{index:02d}格式化生成两位数序号,保证文件名按image01、image02的格式命名,且不会覆盖已有文件
内容的提问来源于stack exchange,提问作者Felipe
相关产品推荐
相关产品推荐

