在开始编写自动化脚本之前,必须确保本地开发环境配置准确。本指南基于Windows 10/11系统,使用Python 3.9版本进行演示。
访问Python官网下载安装包:https://www.python.org/downloads/
下载完成后,运行安装程序。务必勾选“Add Python to PATH”选项,这是为了避免后续在命令行中无法直接识别python命令。安装完成后,打开CMD(命令提示符),输入以下命令验证安装是否成功:
```bash python --version ```我们需要安装Selenium(用于浏览器自动化)、Pandas(用于处理Excel数据)以及WebDriver Manager(用于自动管理浏览器驱动)。在CMD中依次执行以下命令:
```bash pip install selenium pip install pandas pip install openpyxl pip install webdriver-manager ```如果下载速度过慢,建议使用国内镜像源,例如在命令后添加 `-i https://pypi.tuna.tsinghua.edu.cn/simple`。
为了让脚本能够读取商品信息,我们需要准备一个结构化的Excel文件。在桌面上新建一个文件夹,命名为`ecommerce_auto`,在该文件夹内新建一个Excel文件,命名为`products_data.xlsx`。
打开Excel文件,在第一个Sheet(Sheet1)中设置以下表头,并填入至少3条测试数据:
示例数据:

保存并关闭Excel文件。
在`ecommerce_auto`文件夹内,新建一个文本文件,将后缀名改为`.py`,命名为`batch_upload.py`。我们将使用Chrome浏览器进行操作,以下代码包含了完整的登录、读取Excel、填写表单及提交逻辑。
注意:由于不同电商后台的DOM结构不同,本代码以通用的元素定位逻辑为例。实际使用时,你需要根据自己后台的实际HTML标签修改`find_element`中的参数。
```python import time import pandas as pd 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 from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager 配置部分 LOGIN_URL = "https://your-shop-backend.com/login" 替换为你的后台登录地址 TARGET_URL = "https://your-shop-backend.com/product/add" 替换为商品添加页面地址 USERNAME = "your_username" 你的账号 PASSWORD = "your_password" 你的密码 def init_browser(): 自动下载并配置ChromeDriver options = webdriver.ChromeOptions() options.add_argument('--headless') 如需无头模式(不显示浏览器)可取消注释,调试阶段建议注释掉 options.add_argument('--disable-gpu') options.add_argument('--no-sandbox') driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options) driver.maximize_window() return driver def login(driver): print("正在打开登录页面...") driver.get(LOGIN_URL) 显式等待登录框加载完成 try: WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "username"))) 定位用户名和密码输入框(需根据实际网页ID修改) user_input = driver.find_element(By.ID, "username") pass_input = driver.find_element(By.ID, "password") login_btn = driver.find_element(By.ID, "login-btn") user_input.send_keys(USERNAME) pass_input.send_keys(PASSWORD) login_btn.click() print("登录信息已提交,等待跳转...") time.sleep(3) 简单等待跳转,实际可用EC.url_contains判断 except Exception as e: print(f"登录过程出错,请检查页面元素ID: {e}") def upload_product(driver, row): try: print(f"正在处理商品: {row['product_name']}") driver.get(TARGET_URL) 每次循环重新打开添加页面,确保状态干净 等待页面核心元素加载 WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.NAME, "name"))) 1. 填写商品名称 name_input = driver.find_element(By.NAME, "name") name_input.clear() name_input.send_keys(row['product_name']) 2. 填写价格 price_input = driver.find_element(By.NAME, "price") price_input.clear() price_input.send_keys(str(row['price'])) 3. 填写库存 stock_input = driver.find_element(By.NAME, "stock") stock_input.clear() stock_input.send_keys(str(row['stock'])) 4. 选择分类(假设是下拉选择框,此处演示点击操作) 如果是Select标签,需要使用Select类。这里演示通用点击。 category_dropdown = driver.find_element(By.ID, "category-id") category_dropdown.click() time.sleep(1) category_option = driver.find_element(By.XPATH, f"//li[text()='{row['category']}']") category_option.click() 5. 提交表单 submit_btn = driver.find_element(By.XPATH, "//button[contains(text(), '提交')]") submit_btn.click() 等待提交成功提示,例如“保存成功” WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.CLASS_NAME, "success-message"))) print(f"商品 {row['product_name']} 上架成功!") time.sleep(1) 缓冲时间 except Exception as e: print(f"商品 {row['product_name']} 处理失败: {e}") 此处可以添加截图功能以便调试 driver.save_screenshot(f"error_{row['product_name']}.png") def main(): 1. 初始化浏览器 driver = init_browser() try: 2. 执行登录 login(driver) 3. 读取Excel数据 df = pd.read_excel("products_data.xlsx") print(f"读取到 {len(df)} 条商品数据。") 4. 遍历数据并执行上架 for index, row in df.iterrows(): upload_product(driver, row) print("所有商品处理完毕。") finally: 5. 关闭浏览器 time.sleep(5) 停留5秒查看最终状态 driver.quit() if __name__ == "__main__": main() ```代码中使用的`By.ID`、`By.NAME`或`By.XPATH`需要根据你实际操作的电商后台页面进行修改。这是新手最容易卡壳的地方,请严格按照以下步骤获取正确的元素定位符。
driver.find_element(By.XPATH, "//[@id='username']")
打开CMD,切换到`ecommerce_auto`目录:
```bash cd C:\Users\你的用户名\Desktop\ecommerce_auto ```运行脚本:
```bash python batch_upload.py ```如果在运行过程中遇到 NoSuchElementException:
如果在运行过程中遇到 ElementClickInterceptedException:
driver.execute_script("arguments[0].click();", element)
完成上述步骤后,你已经拥有了一个可以自动批量上架商品的初级脚本。为了在生产环境中更稳定地运行,建议进行以下优化:
下一篇: 聊聊电商站点安全方案,别让黑客搬空你家
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图