当前位置: 首页 > news >正文

闲鱼自动发布工具,python基础框架软件,自动擦亮批量发布

闲鱼这个平台吧,玩过的都知道,卖东西得天天擦亮,不然曝光掉得跟跳水似的。我有一堆闲置要出,手动去点实在是烦,干脆花一个下午写了个自动发布+擦亮的小工具。核心就是用 Python 搭了个基础框架,跑在本地,能批量发商品,也能定时帮你把在售的都擦一遍。原理不复杂,但细节坑不少,这里把关键代码和思路分享一下。

整个工具基于 Selenium 模拟浏览器操作,因为闲鱼的反爬机制对 requests 这类直接请求封得很死,走浏览器自动化反而最稳。结构上我拆成了几个模块:登录态保持、商品数据读取、发布流程、擦亮任务。先看登录这块,我直接复用浏览器已有的用户数据,避免每次都扫码或者输密码。Chrome 的话指定 user-data-dir 就行,记得把路径写对,Mac 和 Windows 路径不一样,这点小坑卡了我十分钟。

from selenium import webdriver
from selenium.webdriver.chrome.options import Optionsdef get_logged_driver(user_data_path):options = Options()# 指定你的Chrome用户数据目录,保持登录状态options.add_argument(f"user-data-dir={user_data_path}")# 避免被检测到自动化特征options.add_argument("--disable-blink-features=AutomationControlled")options.add_experimental_option("excludeSwitches", ["enable-automation"])options.add_experimental_option('useAutomationExtension', False)driver = webdriver.Chrome(options=options)driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})'})return driver

有了 driver,我手动登录一次闲鱼后,之后再启动脚本就直接是登录态了,舒服。这里有个小细节:--disable-blink-features=AutomationControlled 和那一段 CDP 命令是用来隐藏 webdriver 特征的,闲鱼前端会检测这些,不藏的话发布按钮可能都点不了。

商品数据我习惯用 Excel 维护,一个表格对应一批要发的东西。用 pandas 读进来,遍历每一行构造发布参数就行。这样子批量上新的时候,改改表格就好,不用动代码。

import pandas as pddef load_products(excel_path):df = pd.read_excel(excel_path)# 表格列名示例:title, description, price, category, images, tags# images字段可以放本地图片路径,多张用逗号分隔products = []for _, row in df.iterrows():product = {'title': row['title'],'desc': row.get('description', ''),'price': str(row['price']),'category': row['category'],'images': [img.strip() for img in row['images'].split(',')],'tags': row.get('tags', '')}products.append(product)return products

这里图片字段处理得比较简单,拆出本地路径列表,后面上传时会依次填入。闲鱼现在最多支持 9 张图,最好在表格里自己控制一下。

发布流程是最复杂的部分,要模拟点击“发布闲置”按钮、选择分类、填写标题描述价格、上传图片、添加标签,最后点发布。每一步都要等元素可交互,而且闲鱼的页面结构偶尔会变,所以定位尽量用相对稳定的属性,比如 placeholder 或者文本内容。核心发布函数大概长这样:

import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ECdef publish_one(driver, product):wait = WebDriverWait(driver, 10)# 点击底部“卖闲置”按钮(需要先进入闲鱼首页)driver.get('https://2.taobao.com')sell_btn = wait.until(EC.element_to_be_clickable((By.XPATH, '//*[text()="卖闲置"]')))sell_btn.click()time.sleep(2)  # 页面跳转等待,实际可以用显式等待# 选择分类,根据product['category']匹配,示例选“数码”category_btn = wait.until(EC.element_to_be_clickable((By.XPATH, f'//div[contains(@class,"category-item") and text()="{product["category"]}"]')))category_btn.click()# 填写标题title_input = wait.until(EC.presence_of_element_located((By.XPATH, '//input[@placeholder="宝贝标题"]')))title_input.clear()title_input.send_keys(product['title'])# 描述,通常在iframe里,需要先切换iframe = driver.find_element(By.XPATH, '//iframe[contains(@id,"ueditor")]')driver.switch_to.frame(iframe)desc_area = driver.find_element(By.XPATH, '//body')desc_area.clear()desc_area.send_keys(product['desc'])driver.switch_to.default_content()# 价格price_input = driver.find_element(By.XPATH, '//input[@placeholder="价格"]')price_input.clear()price_input.send_keys(product['price'])# 上传图片:找到上传按钮对应的input[type=file],逐个发送本地路径upload_input = driver.find_element(By.XPATH, '//input[@type="file" and @multiple]')images_str = '\n'.join(product['images'])  # Selenium支持多个文件用换行分隔路径upload_input.send_keys(images_str)# 等待图片上传完成,简单硬等一下,实际可以轮询图片数量time.sleep(3 + len(product['images']))# 添加标签if product['tags']:tag_input = driver.find_element(By.XPATH, '//input[@placeholder="添加标签"]')tag_input.send_keys(product['tags'])# 回车确认标签tag_input.send_keys(Keys.ENTER)# 发布submit_btn = driver.find_element(By.XPATH, '//*[text()="发布"]')submit_btn.click()time.sleep(3)print(f"发布成功: {product['title']}")

上面的代码只是一个基础流程,实际跑的时候会遇到很多细节问题:图片上传后前端可能要校验,等待时间需要根据网络调整;发布按钮可能有多个,要精确定位;有些类目需要额外填写原价、成色等属性,这块就得根据类目做更细的匹配。不过这个框架已经能覆盖大部分普通闲置的发布了。而我实际用的时候,发现如果一次发太多条,闲鱼会弹验证码,所以加了个随机间隔和每日上限控制。

擦亮功能就简单多了,从“我发布的”列表里拿到所有在售宝贝,逐个点“擦亮”即可。擦亮本质就是点一下那个按钮,让宝贝重新获得流量。代码大致是遍历列表,找到所有“擦亮”元素,一个个点击,中间加点延时防止操作太快。

def refresh_all(driver):driver.get('https://2.taobao.com/')wait = WebDriverWait(driver, 10)# 进入“我发布的”mine_btn = wait.until(EC.element_to_be_clickable((By.XPATH, '//*[text()="我发布的"]')))mine_btn.click()time.sleep(2)# 获取所有擦亮按钮,注意有些宝贝可能已擦亮过,按钮会变灰或消失refresh_buttons = driver.find_elements(By.XPATH, '//*[text()="擦亮"]')for btn in refresh_buttons:try:btn.click()print("擦亮成功")time.sleep(2)except:print("擦亮失败,可能已经擦亮过了")continue

这个擦亮思路比较粗暴,但是能用。我通常把它放到每日定时任务里,Windows 就用任务计划程序,Mac 或 Linux 用 cron,每天上午自动跑一次,保持曝光。当然,如果你的宝贝数量很多,最好加上异常重试和失败日志,否则 network 一波动就中断了。

整个工具的技术亮点我觉得在于:用 Selenium 的 user-data-dir 保持登录态,免除重复扫码的麻烦;用 Excel 管理商品数据,做到发布流程和数据分离;把发布和擦亮拆成两个独立任务,可以单独执行。虽然代码写得不那么漂亮,但是胜在实用。我自己用着挺顺手,偶尔调整一下 Excel 就能批量上新旧衣服、数码小件。缺点也有,就是依赖本机浏览器环境,不能完全无头跑服务端,但如果只是个人用,足够了。

如果你也有类似的批量发布需求,可以考虑基于这个框架改一改,增加更多类目的适配。不过要提醒一句,自动化操作有违平台规则的风险,不要频繁大量操作,用作个人辅助还行,别用来做商业化批量铺货,封号就别怪我没提醒哈。

http://www.jsqmd.com/news/944185/

相关文章:

  • AI英语口语助手APP的开发
  • 保姆级教程:在Linux服务器上从零部署CARD耐药基因分析工具RGI(含数据库配置避坑指南)
  • 别再只用默认配色了!Seaborn热力图调色板保姆级指南(附代码对比图)
  • 告别平台限制:WorkshopDL让非Steam玩家也能畅玩创意工坊模组
  • Nginx 网关别只会反代:Docker 部署 Nginx Proxy Manager,给家庭服务加一层安全边界
  • 流动的奢享:长春 沈阳万象城美陈设计叙事 肆墨设计
  • 低功耗蓝牙广播
  • AI工具如何撬动用户LTV?揭秘智能积分系统的3层数据闭环设计
  • 3个颠覆性理由:为什么APK安装器是Windows用户的必备工具
  • [Java学习日记10】聊聊checked exception和runtime exception
  • 国内评价高的斜管沉淀池厂选哪家,水处理一体化设备/一体化废水的处理装置/污水处理厂设备,斜管沉淀池生产厂家选哪家 - 品牌推荐师
  • 无水印视频下载神器哪个好? 无水印视频下载工具软件推荐,无水印视频下载神器盘点 - 工具软件使用方法推荐
  • 大模型行业风向突变:从涨价潮到降价战,小米、DeepSeek谁能笑到最后?
  • 星月工具箱:轻量集成,多功能离线应用,为电脑日常维护打造的高效助手
  • css手写奥运五环
  • PVE-VDIClient:企业级虚拟桌面基础设施的终极开源解决方案
  • 2026 工程塑料实力厂家推荐:改性尼龙、PEEK、LCP 选材必看 TOP4 优选靠谱工厂清单 - 变量人生001
  • 基于Seeeduino XIAO与Grove模块的环境监测系统开发实践
  • B站视频转文字:从技术实现到学习效率的革命性提升
  • Joy-Con Toolkit高级配置与性能优化技术方案
  • 26NOI内训day6 西安高新一中
  • 网络连接遇阻,揭秘这款游戏的玩法与获胜条件!
  • 18 小凌派 rk2206 鸿蒙 liteos 如何通过修改配置文件,编译不通的案例
  • 2026年嘉德实创冷库服务商推荐榜单:医药GSP冷库、食品速冻冷库、冷链物流系统与温湿度监测工程实力品牌解析 - 品牌企业推荐师(官方)
  • 基于IMU传感器与Python的单摆周期精确测量:从硬件搭建到STFT分析
  • 游戏闪退?可能是Vulkan的锅!手把手教你排查Windows双显卡(独显+核显)的Vulkan支持与切换问题
  • 5分钟掌握Pulover‘s Macro Creator:Windows自动化神器的终极指南
  • 淘汰老式玩具赛车!沙盘赛车才是场地长效创收密码
  • ChatGPT也能“看图说话“?揭秘多模态大模型如何输入图片输出视频!
  • 异步音乐生成API架构深度解析与实战集成指南