You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否使用Selenium抓取网站产品图片并以页面标注的产品名称命名保存?

需求可行性结论

该需求完全可以通过Selenium实现,整体实现逻辑清晰,站点结构也符合自动化爬取的适配条件,具体实现步骤和注意事项如下:

实现步骤

  • 第一步:初始化Selenium驱动,访问产品列表页 http://www.laboory.com/products,通过CSS选择器/XPath定位所有产品详情页的跳转链接,去重后存储为列表备用。
  • 第二步:遍历产品链接列表,逐个加载产品详情页,首先定位General(概况)分区的产品名称元素,提取文本内容后提前替换掉/ \ : * ? " < > |等Windows/Linux系统不允许出现在文件名中的特殊字符,避免后续保存文件报错。
  • 第三步:定位页面上的Gallery(图集)子菜单按钮,执行点击操作切换到图集分区,通过显式等待确保分区内容、所有图片资源加载完成。如果站点采用图片懒加载策略,可以补充执行页面滚动操作,触发所有图片的加载逻辑。
  • 第四步:提取Gallery分区下所有图片的资源链接,按出现顺序给图片编号,拼接成{产品名称}{序号}.jpg格式的文件名,调用requests库下载图片资源到指定本地路径即可。

核心代码示例(简化版)

from selenium import webdriver
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 re

# 初始化驱动
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 10)

# 1. 获取所有产品链接
driver.get("http://www.laboory.com/products")
product_links = [elem.get_attribute("href") for elem in driver.find_elements(By.CSS_SELECTOR, "替换为实际的产品链接选择器")]
product_links = list(set(product_links)) # 去重

for link in product_links:
    driver.get(link)
    # 2. 提取产品名
    product_name = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "替换为General区产品名选择器"))).text.strip()
    # 替换非法文件名字符
    product_name = re.sub(r'[\\/:*?"<>|]', '_', product_name)
    
    # 3. 切换到Gallery分区
    wait.until(EC.element_to_be_clickable((By.XPATH, "//*[text()='Gallery']"))).click()
    # 等待图片加载
    img_elements = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "替换为Gallery区图片选择器")))
    
    # 4. 下载图片
    for idx, img_elem in enumerate(img_elements, start=1):
        img_url = img_elem.get_attribute("src")
        resp = requests.get(img_url)
        with open(f"./自定义保存路径/{product_name}{idx}.jpg", "wb") as f:
            f.write(resp.content)

driver.quit()

注:代码中的元素选择器需要根据页面实际的DOM结构调整替换即可。

注意事项

  • 如果站点有反爬机制,可以适当增加请求间隔时间,或者配置Selenium的无头模式、自定义UA头,降低被拦截的概率。
  • 如果图片是动态加载的,可以补充滚动触发逻辑,确保所有图片资源都能正常获取。

内容的提问来源于stack exchange,提问作者Lunedor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 20:45:02