影刀RPA深度实战:抖音小店卖家后台自动化运营与直播数据采集
影刀RPA深度实战抖音小店卖家后台自动化运营与直播数据采集作者林焱标签#影刀RPA #抖音小店 #抖店运营 #直播数据 #达人带货 #订单批量处理开篇抖店后台的运营负担有多重抖音小店的特殊性在于它是内容驱动的电商卖家每天要处理的不只是商品和订单还要跟进直播数据、达人带货效果、短视频挂车数据。我帮过一个做美妆的抖店卖家他们运营团队每天下午4点到凌晨2点直播结束后还要整理一堆数据——光是对账就要两个小时。本文与常见的抖音内容采集文章不同聚焦在抖店卖家后台seller.douyin.com的操作自动化商品管理、订单处理、直播数据导出、达人合作监控。这是卖家视角不是采集数据视角。一、抖店后台登录与权限说明1.1 账号体系抖店后台使用抖音账号登录但权限分级非常复杂主账号店主所有权限运营子账号无财务权限无法提现客服子账号只能处理订单和回复评论如果你用影刀做自动化强烈建议用专门的运营子账号不要用主账号避免因为操作失误影响主账号安全。importjsonimportosdefsave_douyin_session(page,account_namemain): 保存抖店后台登录会话 关键Cookie - passport_csrf_token: CSRF防护 - ttwid: 抖音会话标识 - odin_tt: 登录态主要凭证 - passport_auth_status: 认证状态 注意抖音安全性很高Cookie有效期约3天 账号在异地IP登录会触发二次验证 建议固定一个IP做自动化不要频繁切换 cookiespage.get_cookies()dy_cookies[cforcincookiesifany(dinc.get(domain,)fordin[.douyin.com,.bytedance.com,.byted.org])]save_pathfC:/RPA_Data/douyin_{account_name}_session.jsonos.makedirs(os.path.dirname(save_path),exist_okTrue)withopen(save_path,w,encodingutf-8)asf:json.dump(dy_cookies,f,ensure_asciiFalse,indent2)print(f抖店会话已保存账号{account_name}Cookie数{len(dy_cookies)})returnTruedefverify_shop_login(page): 验证抖店后台是否已登录 检查是否能访问订单管理页 page.goto(https://seller.douyin.com/ecom/orders/)page.wait_for_load_state(networkidle)# 如果跳转到登录页或出现登录按钮说明未登录iflogininpage.urlorpassportinpage.url:returnFalse# 检查订单页面标志性元素order_titlepage.query_selector(.order-page-title, [data-testidorder-list])returnbool(order_title)二、商品批量管理2.1 商品状态批量修改defbatch_update_product_status(page,product_ids,actionon_sale): 批量修改商品状态 action参数 - on_sale : 上架 - off_sale : 下架 - delete : 删除不可逆谨慎使用 抖店商品管理URL https://seller.douyin.com/ecom/product/management/ XPath关键节点 //div[data-testidproduct-list-item] : 商品列表每行 //input[typecheckbox][data-product-id] : 商品选择框 //button[contains(class,batch-action)] : 批量操作按钮 page.goto(https://seller.douyin.com/ecom/product/management/)page.wait_for_load_state(networkidle)# 筛选对应商品搜索商品IDsearch_inputpage.query_selector(.search-input input, input[placeholder*商品])success_count0failed_ids[]# 每次处理一批最多50个batch_size50foriinrange(0,len(product_ids),batch_size):batchproduct_ids[i:ibatch_size]# 选择商品selected_count0forpidinbatch:checkboxpage.query_selector(finput[data-product-id{pid}])ifcheckbox:ifnotcheckbox.is_checked():checkbox.click()selected_count1else:failed_ids.append(pid)ifselected_count0:continue# 点击批量操作按钮batch_btnpage.query_selector(.batch-operation-btn, button:has-text(批量操作))ifbatch_btn:batch_btn.click()page.wait_for_timeout(500)# 选择操作类型action_map{on_sale:上架,off_sale:下架,delete:删除}action_textaction_map.get(action,上架)action_optionpage.query_selector(f.dropdown-menu li:has-text({action_text}))ifaction_option:action_option.click()page.wait_for_timeout(1000)# 确认弹窗删除操作会弹出确认框confirm_btnpage.query_selector(.modal-confirm button:has-text(确认))ifconfirm_btn:confirm_btn.click()page.wait_for_load_state(networkidle)success_countselected_countprint(f批次{i//batch_size1}{action_text}{selected_count}个商品)page.wait_for_timeout(2000)print(f批量{action_map.get(action)}完成成功{success_count}个失败{len(failed_ids)}个)returnsuccess_count,failed_ids三、订单批量处理3.1 订单数据批量导出fromdatetimeimportdatetime,timedeltadefexport_orders_by_date(page,date_from,date_to,order_statusall): 按日期范围导出抖店订单数据 order_status参数抖店订单状态 - all : 全部订单 - waiting_pay : 待付款 - waiting_ship : 待发货 - shipped : 已发货 - completed : 已完成 - cancelled : 已取消 - refund : 退款中 抖店订单导出 进入订单管理 → 导出订单 → 设置日期范围 → 下载 注意单次导出上限5000条超过需分段导出 page.goto(https://seller.douyin.com/ecom/orders/)page.wait_for_load_state(networkidle)# 切换订单状态标签status_tab_map{waiting_ship:待发货,shipped:已发货,completed:已完成,refund:退款/售后}iforder_statusinstatus_tab_map:tab_textstatus_tab_map[order_status]tabpage.query_selector(f.order-status-tab:has-text({tab_text}))iftab:tab.click()page.wait_for_timeout(1000)# 点击导出按钮export_btnpage.query_selector(button:has-text(导出), .export-btn)ifnotexport_btn:print(未找到导出按钮)returnNoneexport_btn.click()page.wait_for_timeout(1000)# 设置导出日期范围date_inputspage.query_selector_all(.date-range-picker input)iflen(date_inputs)2:date_inputs[0].triple_click()date_inputs[0].type(date_from)date_inputs[1].triple_click()date_inputs[1].type(date_to)page.keyboard.press(Enter)page.wait_for_timeout(500)# 确认导出confirm_exportpage.query_selector(.export-modal button:has-text(确认导出))ifconfirm_export:confirm_export.click()page.wait_for_timeout(3000)# 等待下载完成print(导出任务已提交等待文件就绪...)importtimeforattemptinrange(30):time.sleep(3)download_linkpage.query_selector(.download-ready a, .export-download-btn)ifdownload_link:hrefdownload_link.get_attribute(href)print(f订单导出文件就绪{href})returnhrefprint(导出超时请进入导出记录手动下载)returnNonereturnNone3.2 批量发货从WMS/ERP读取物流信息defbatch_ship_orders(page,shipping_data): 批量上传物流信息 shipping_data格式 [ {order_id: xxx, tracking: 123456789, carrier_code: YTO}, ... ] 抖店支持的物流公司代码常用 - YTO: 圆通速递 - ZTO: 中通快递 - STO: 申通快递 - EMS: 中国邮政EMS - SF: 顺丰速运 - JD: 京东物流 - YUNDA: 韵达快递 - BESTEX: 百世快递 最佳实践用抖店开放平台API批量发货更稳定 API文档https://op.jinritemai.com/docs/guide-docs/14/50 但需要申请开发者资质 importcsvimporttempfileimportos# 方法一通过导入CSV批量发货推荐效率更高# 创建临时CSV文件temp_csvtempfile.NamedTemporaryFile(modew,suffix.csv,deleteFalse,encodingutf-8-sig,newline)writercsv.writer(temp_csv)# 抖店批量发货CSV格式以下列顺序为准writer.writerow([订单编号,物流公司,物流单号])foriteminshipping_data:writer.writerow([item[order_id],item[carrier_code],item[tracking]])temp_csv.close()csv_pathtemp_csv.name# 进入批量发货页面page.goto(https://seller.douyin.com/ecom/orders/batch-ship/)page.wait_for_load_state(networkidle)# 上传CSV文件file_inputpage.query_selector(input[typefile][accept.csv])iffile_input:file_input.set_input_files(csv_path)page.wait_for_timeout(3000)# 确认上传import_btnpage.query_selector(button:has-text(开始导入), button:has-text(确认导入))ifimport_btn:import_btn.click()page.wait_for_load_state(networkidle)# 检查导入结果result_elempage.query_selector(.import-result)ifresult_elem:result_textresult_elem.inner_text()print(f批量发货结果{result_text})# 清理临时文件os.unlink(csv_path)returnTrue四、直播数据采集4.1 直播场次数据汇总defcollect_live_room_data(page,days7): 采集最近N天的直播场次数据 抖店直播数据入口 数据中心 → 直播数据 → 直播场次列表 URL: https://seller.douyin.com/ecom/data/live/ 采集字段 - 开播时间/结束时间 - 观看人数UV、PV - 商品点击数 - 成交订单数 - 成交金额GMV - 转化率订单数/点击数 fromdatetimeimportdatetime,timedelta page.goto(https://seller.douyin.com/ecom/data/live/)page.wait_for_load_state(networkidle)# 设置时间范围end_datedatetime.now()start_dateend_date-timedelta(daysdays)date_from_strstart_date.strftime(%Y-%m-%d)date_to_strend_date.strftime(%Y-%m-%d)# 设置日期筛选器date_inputspage.query_selector_all(.date-picker input)iflen(date_inputs)2:date_inputs[0].triple_click()date_inputs[0].type(date_from_str)date_inputs[1].triple_click()date_inputs[1].type(date_to_str)page.keyboard.press(Enter)page.wait_for_timeout(1500)# 点击查询query_btnpage.query_selector(button:has-text(查询))ifquery_btn:query_btn.click()page.wait_for_load_state(networkidle)# 采集直播场次列表live_sessions[]rowspage.query_selector_all(.live-session-table tr:not(:first-child))forrowinrows:cellsrow.query_selector_all(td)iflen(cells)6:continuetry:session{start_time:cells[0].inner_text().strip(),duration:cells[1].inner_text().strip(),# 直播时长uv:cells[2].inner_text().strip(),# 观看人数product_clicks:cells[3].inner_text().strip(),# 商品点击数orders:cells[4].inner_text().strip(),# 成交订单gmv:cells[5].inner_text().strip(),# 成交金额}# 计算转化率try:clicksint(session[product_clicks].replace(,,))ordersint(session[orders].replace(,,))session[conversion_rate]f{orders/clicks*100:.1f}%ifclicks0else0%except:session[conversion_rate]N/Alive_sessions.append(session)exceptExceptionase:print(f解析直播场次数据失败{e})print(f采集到{len(live_sessions)}场直播数据)returnlive_sessions五、达人合作数据监控5.1 达人带货效果追踪defmonitor_influencer_performance(page,days30): 监控达人带货效果 抖店达人数据入口 达人管理 → 合作达人 → 带货效果 URL: https://seller.douyin.com/ecom/talent/management/ 关键指标 - 达人昵称/粉丝数 - 带货视频/直播场次 - 总成交笔数 - 总成交金额GMV - 平均客单价 - 退款率 page.goto(https://seller.douyin.com/ecom/talent/management/)page.wait_for_load_state(networkidle)influencer_data[]# 采集达人列表talent_rowspage.query_selector_all(.talent-table-row, .influencer-item)forrowintalent_rows:try:# 达人基本信息name_elemrow.query_selector(.talent-name, .nickname)fans_elemrow.query_selector(.fans-count, .follower-count)# 带货数据orders_elemrow.query_selector(.order-count, .sale-orders)gmv_elemrow.query_selector(.gmv-value, .sale-amount)refund_elemrow.query_selector(.refund-rate)influencer{name:name_elem.inner_text().strip()ifname_elemelse,fans:fans_elem.inner_text().strip()iffans_elemelse,total_orders:orders_elem.inner_text().strip()iforders_elemelse0,total_gmv:gmv_elem.inner_text().strip()ifgmv_elemelse0,refund_rate:refund_elem.inner_text().strip()ifrefund_elemelse0%,}# 计算平均客单价try:importre gmv_numfloat(re.sub(r[^\d.],,influencer[total_gmv]))orders_numfloat(re.sub(r[^\d.],,influencer[total_orders]))influencer[avg_order_value]round(gmv_num/orders_num,2)iforders_num0else0except:influencer[avg_order_value]0influencer_data.append(influencer)exceptExceptionase:print(f解析达人数据失败{e})# 按GMV排序influencer_data.sort(keylambdax:float(x[total_gmv].replace(万,0000).replace(,,).replace(元,)or0),reverseTrue)print(f共监控{len(influencer_data)}位达人)returninfluencer_datadefgenerate_influencer_report(influencer_data,save_path): 生成达人带货效果报告并保存 importcsvwithopen(save_path,w,newline,encodingutf-8-sig)asf:fieldnames[达人昵称,粉丝数,成交笔数,成交金额(GMV),平均客单价,退款率]writercsv.DictWriter(f,fieldnamesfieldnames)writer.writeheader()foritemininfluencer_data:writer.writerow({达人昵称:item[name],粉丝数:item[fans],成交笔数:item[total_orders],成交金额(GMV):item[total_gmv],平均客单价:f¥{item[avg_order_value]},退款率:item[refund_rate]})print(f达人报告已保存至{save_path})returnsave_path六、常见问题速查现象原因解决方式进入抖店后台时频繁弹出风险验证弹窗影刀浏览器指纹被识别为异常设备在影刀的浏览器启动参数中添加--disable-blink-featuresAutomationControlled固定IP不频繁切换直播数据页面显示暂无数据但确实有直播记录日期筛选器格式错误或直播数据延迟通常延迟12-24小时检查日期格式为YYYY-MM-DD次日再查当天数据批量发货CSV导入后提示格式错误CSV中有中文引号、全角逗号或BOM问题保存CSV时用encodingutf-8-sig确认列顺序与抖店模板完全一致| 达人数据页面只能看到合作中的达人 | 已终止合作的达人默认不显示 | 切换到全部达人标签或在筛选器中去掉合作中的限制 || 商品批量下架后前台仍然显示 | 抖音前台有CDN缓存延迟约30分钟 | 等待30分钟后再确认如超过2小时未更新检查下架操作是否真正执行成功 || 自动化操作时页面自动刷新、数据被清空 | 抖店后台在长时间未操作后会自动刷新会话 | 每30分钟在页面上执行一次无害的鼠标移动操作“保活”或缩短单次运行时间 |七、推荐资源抖店开放平台op.jinritemai.com官方API批量发货/商品管理比页面操作稳定10倍强烈推荐有开发资质的卖家申请抖店卖家学堂school.jinritemai.com后台功能更新最快能在这里找到说明影刀社区抖音小店板块搜索发货自动化有同行分享的完整流程飞书多维表格配合影刀把直播数据写入飞书团队成员实时查看比Excel共享更方便抖店后台的更新频率在所有电商平台中是最高的平均2-3周就有UI改动。我的建议是把XPath选择器单独放在一个配置文件里改版时只需更新这个文件不用重写整个流程。这个习惯帮我省了很多时间。

相关新闻

Digielch循环伏安模拟实战:从Butler-Volmer方程到多步机理拟合

Digielch循环伏安模拟实战:从Butler-Volmer方程到多步机理拟合

简介:DigiElch Professional 4.5是专为电化学实验数据处理与分析设计的拟合软件,面向科研人员、工程师及电化学相关专业学生,可针对电位扫描、电流-时间曲线和电化学阻抗谱(EIS)等多种实验数据进行处理与拟合&#xff…

2026/10/15 0:59:46 阅读更多 →
安瓿灌封机灌装精度怎么保证?装量波动的技术根源与对策

安瓿灌封机灌装精度怎么保证?装量波动的技术根源与对策

安瓿灌封机灌装精度怎么保证?装量波动的技术根源与对策装量波动是水针生产最头疼的问题之一:批检验装量差异超标,整批面临不合格风险。但装量问题的根源往往不在灌装泵本身——它是管路、药液、针头、控制多个环节共同作用的结果。这篇把装量…

2026/10/15 0:59:46 阅读更多 →
订单折扣为什么必须用策略模式?真实电商场景下的解耦实践

订单折扣为什么必须用策略模式?真实电商场景下的解耦实践

1. 项目概述:为什么订单折扣不能硬编码,而要交给策略模式来管“订单折扣”这四个字,听起来简单,但只要在电商、SaaS或任何涉及多客户分层的系统里干过三年以上,你肯定被它坑过不止一次。我最早在一个模拟项目X里负责结…

2026/10/15 0:59:46 阅读更多 →

最新新闻

WPF-Samples 实战解析:基于 Win32 WINDOWPLACEMENT 实现多显示器感知的窗口状态保存与恢复

WPF-Samples 实战解析:基于 Win32 WINDOWPLACEMENT 实现多显示器感知的窗口状态保存与恢复

示例工程 【免费下载链接】WPF-Samples Repository for WPF related samples 项目地址: https://gitcode.com/gh_mirrors/wp/WPF-Samples 点击查看 免费下载 本篇文章以 WPF-Samples 仓库中的 SaveWindowState 示例 为主体,完整剖析如何在 WPF 应用中保…

2026/10/15 1:52:07 阅读更多 →
网络基础篇~三次握手和四次挥手

网络基础篇~三次握手和四次挥手

一、TCP 头部数据结构(一)TCP头部数据结构:【源端口号16位】 | 【目标端口号16位】seq(序列号32位):序列号,用于将多个数据包进行排序,形成一个完整有序的数据流ack(确认应答号32位):SYN(报文&…

2026/10/15 1:52:07 阅读更多 →
Rust 常量函数 `const fn` 完全解析:RFC 911 设计初衷、常量表达式规则与三十年的能力演进

Rust 常量函数 `const fn` 完全解析:RFC 911 设计初衷、常量表达式规则与三十年的能力演进

文档 【免费下载链接】rfcs RFCs for changes to Rust 项目地址: https://gitcode.com/gh_mirrors/rf/rfcs 点击查看 免费下载 导读:本文以 Rust RFC 仓库中的 RFC 911《const fn》 为核心,系统梳理 const fn 引入的动机、语法设计与常量表达…

2026/10/15 1:52:07 阅读更多 →
用任意语言实现“Lenguaje Hacker“:MoureDev 2023 编程挑战第 1 题(leet / 1337 字符映射转换)完整实战指南

用任意语言实现“Lenguaje Hacker“:MoureDev 2023 编程挑战第 1 题(leet / 1337 字符映射转换)完整实战指南

示例工程 【免费下载链接】retos-programacion-2023 Ejercicios de cdigo semanales en 2023 de la comunidad MoureDev para practicar lgica en cualquier lenguaje de programacin. 项目地址: https://gitcode.com/gh_mirrors/re/retos-programacion-2023 点击查…

2026/10/15 1:52:07 阅读更多 →
SSH证书登录全攻略:从密钥生成到安全加固的运维实践

SSH证书登录全攻略:从密钥生成到安全加固的运维实践

SSH证书登录(密钥认证)一直是我接手新服务器或者批量管理机器时第一个配置的项目。不管你是刚接触Linux服务器的小白,还是已经用密码登录硬扛了好一阵子的开发者,这套配置基本属于必做的“地基工程”。这篇文章,我从实…

2026/10/15 1:52:07 阅读更多 →
秋招投两个岗位,简历要改哪里?先把同一段项目经历对齐两份岗位要求

秋招投两个岗位,简历要改哪里?先把同一段项目经历对齐两份岗位要求

课程项目不多的时候,投两个岗位最容易犯的错误是把同一段经历扩写成两件事。前端岗位想看到页面和交互,测试岗位想看到检查方法,但这些关注点不同,并不意味着可以给自己增加一段不存在的经历。 我准备的示例全部是虚构资料&#…

2026/10/15 1:51:07 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →