影刀RPA新手教程跨境电商选品完全指南——AliExpress热卖商品分析与竞品调研自动化作者林焱 | 实战向 | 全文约2500字前言做跨境电商选品决定生死。但选品最痛苦的是数据收集——AliExpress上一个个点开商品记录价格、销量、评分、评论数一个品类看下来眼睛都花了还容易抄错数据。我用影刀RPA做过一个AliExpress选品数据采集方案每天自动采集指定品类的前200个热卖商品数据存到Excel里再用Python做简单分析十分钟就能判断一个品类值不值得做。本篇把这套方案完整讲一遍从AliExpress页面结构特点到反爬策略都是实战踩坑之后的经验。店群矩阵自动化突破运营极限一、安装与初始化AliExpress是跨境电商最重要的平台之一但它的页面结构和国内淘宝完全不同有几个特点需要注意。第一AliExpress有严格的访问频率限制操作太快会直接封IP。第二商品页面有大量异步加载内容需要等待元素出现。第三有些数据在移动端页面和PC端不一样建议用移动端User-Agent采集数据更干净。影刀配置浏览器Chrome User-AgentMozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) ... 代理设置建议使用住宅代理避免IP被封 页面加载等待隐式等待10秒我当时第一次做AliExpress采集没设User-Agent用的是默认PC端结果页面结构和教程对不上浪费了半天时间。二、元素定位四合一AliExpress的商品列表页和详情页元素定位需要准备多套方案。商品列表页——商品卡片AliExpress商品列表每个商品卡片的class是动态生成的但有几个属性是稳定的。//div[contains(class,product-card)] //a[contains(href,/item/)] //span[contains(class,price)] //span[contains(class,orders)]商品详情页——价格AliExpress的价格显示有几种形式单价、区间价、折扣价。需要分别获取。//span[classproduct-price-current] //span[classproduct-price-original] //div[classdiscount-badge]CSS选择器备用方案div[class*product][class*card] span[class*price] span[data-testidprice]我当时遇到一个问题AliExpress的DOM结构和国内淘宝不一样它的价格是放在shadow DOM里的用普通的XPath获取不到。解决方法是用在网页元素上执行JavaScript指令通过shadow root获取。function(element,input){letshadowRootelement.shadowRoot;returnshadowRoot.querySelector(.price-text).textContent;}三、变量与数据类型选品数据采集的变量设计核心是支持后续的数据分析。单个商品数据结构product{product_id:1005005567890123,title:Wireless Earbuds Bluetooth 5.3,price:12.99,original_price:25.99,currency:USD,orders:2345,rating:4.7,review_count:1834,seller:Shop123456,seller_followers:12340,shipping:Free shipping,category:Consumer Electronics,collect_time:2024-11-01 10:30:00}品类数据采集列表category_products[]# 采集完一个商品就appendcategory_products.append(product)竞品对比数据选品需要对比竞品用字典存储对比结果。competitor_analysis{my_product_price:12.99,avg_competitor_price:15.50,min_competitor_price:9.99,price_rank:3,# 在竞品中价格排第3低[video(video-nOcS1kBR-1783008316114)(type-csdn)(url-https://live.csdn.net/v/embed/525010)(image-https://i-blog.csdnimg.cn/img_convert/66b1f116a1b0abf9e5b0dab07e07c311.jpeg)(title-店群矩阵自动化突破运营极限)]review_rank:2,# 评论数排第2多}四、流程控制选品数据采集是一个列表页→详情页→返回→下一个的循环结构。主流程开始 ↓ 配置采集参数品类关键词、采集数量 ↓ 打开AliExpress搜索页 ↓ 循环翻页采集商品列表 ↓ 获取当前页所有商品卡片元素 ↓ 循环逐个点击商品进入详情页 ↓ 采集商品详情数据 写入内存列表 ↓  判断已采集数量是否达到目标 ↓是→退出循环 ↓否→返回列表页继续下一个 ↓ 判断是否有下一页 ↓是→点击下一页继续 ↓否→退出翻页循环 ↓ 数据清洗与去重 ↓ 写入Excel生成分析报告 ↓ 结束翻页处理AliExpress的翻页按钮有时候是下一页箭头有时候是数字页码。用获取相似元素列表获取所有页码按钮找到当前页的下一个页码点击。//a[contains(class,pagination) and not(contains(class,active))]异常处理详情页可能加载失败或者商品已下架。用尝试捕获指令包住详情页采集逻辑失败就跳过记录日志继续下一个。五、网页自动化实战搜索目标品类用在输入框中输入指令在AliExpress搜索框输入品类关键词点搜索。搜索框XPath//input[idsearch-key]设置筛选条件AliExpress的筛选条件价格区间、评分、订单量在左侧边栏。用点击元素指令展开筛选条件再设置。按订单量排序//a[contains(href,SortTypetotalOrderedQty)]按评分排序//a[contains(href,SortTyperating)]采集商品列表基础信息不需要每个商品都点进去列表页已经有价格、订单量、评分等基础信息先批量获取。用获取相似元素列表指令获取所有商品卡片再循环提取每个卡片的信息。# 批量获取商品价格price_listget_similar_elements_attribute(//span[contains(class,price)],textContent)# 批量获取商品订单量orders_listget_similar_elements_attribute(//span[contains(class,orders)],textContent)进入详情页采集深度数据列表页没有的数据商品描述、详细参数、评论内容需要进入详情页采集。详情页数据采集要点商品图片URL用获取元素属性获取img标签的src属性商品描述有些在iframe里需要先切换iframe评论内容AliExpress的评论是动态加载的需要模拟滚动触发加载六、数据处理采集到的原始数据需要做大量清洗工作。价格处理AliExpress的价格文本格式是US $12.99需要提取数字部分。importredefextract_price(price_text):# 匹配数字支持小数点matchre.search(r(\d\.?\d*),price_text)ifmatch:returnfloat(match.group(1))return0.0# 示例priceextract_price(US $12.99)# 返回 12.99订单量处理AliExpress的订单量显示有sold、orders等后缀还有K表示千。defextract_orders(orders_text):orders_textorders_text.lower().replace(sold,).replace(orders,).strip()ifkinorders_text:returnint(float(orders_text.replace(k,))*1000)ifminorders_text:returnint(float(orders_text.replace(m,))*1000000)returnint(orders_text)去重处理同一个商品可能有多个SKU链接用product_id去重。seen_idsset()unique_products[]forpinall_products:ifp[product_id]notinseen_ids:seen_ids.add(p[product_id])unique_products.append(p)七、鼠标键盘与图像滚动加载更多AliExpress有些页面需要滚动才能加载更多内容用模拟滚动指令。指令模拟滚动 目标当前页面 方向向下 滚动次数3 每次滚动后等待2秒等待内容加载截图保存商品图片选品需要看商品图片判断产品质量和卖点。用下载文件指令根据图片URL批量下载商品主图。importrequestsdefdownload_image(img_url,save_path):headers{User-Agent:Mozilla/5.0 ...}resprequests.get(img_url,headersheaders,timeout10)withopen(save_path,wb)asf:f.write(resp.content)处理Cookie弹窗AliExpress会根据地区显示不同的Cookie同意弹窗用尝试点击元素指令检测到弹窗就关闭。八、竞品调研进阶选品不只是采集数据还要做竞品分析。自动打开竞品链接把采集到的竞品商品ID整理成链接列表用影刀批量打开采集竞品的详细数据做对比。竞品链接格式https://www.aliexpress.com/item/{product_id}.html评论内容分析评论里有很多有价值的信息客户喜欢什么、抱怨什么、希望有什么功能。用影刀采集评论内容再做关键词分析。评论内容的XPath详情页//div[contains(class,feedback)]//div[classfeedback-content]店铺数据分析不只看单个商品还要看店铺整体数据。用影刀进入店铺首页采集店铺的粉丝数、好评率、加入年限等数据判断店铺实力。九、平台实战整合把选品数据采集做成一个可配置的应用。配置化运行把以下参数放在Excel配置表里每次运行前修改配置表不用改流程。参数示例值搜索关键词Wireless Earbuds目标采集数量200排序方式按订单量最低评分4.5最低订单量500价格上限50 USD定时自动采集用影刀的定时任务功能每天凌晨2点自动运行采集流程此时AliExpress访问量最低不容易被封。生成选品报告采集完数据后自动生成选品报告包括品类平均价格价格分布直方图TOP20商品列表竞品价格对比表推荐选品清单综合评分最高的前10个商品十、系统联动选品数据不应该只存在本地还需要和其他系统联动。推送到飞书多维表格把选品数据推送到飞书多维表格团队多人可以同时查看和标注。用影刀的HTTP请求指令调用飞书OpenAPI的写入记录接口。与ERP系统联动选品确定之后自动在ERP系统里创建新品档案包括商品名称、采购价、建议售价等字段。价格监控联动选品入库之后用另一个影刀流程定期监控竞品价格变化发现竞品降价就发送提醒。十一、工程化规范选品数据采集是长期运行的流程规范非常重要。IP轮换策略AliExpress对单一IP的访问频率有限制。如果公司有代理池在流程里配置IP轮换。用设置代理指令每次翻页之前切换一次代理IP。代理格式http://用户名:密码代理IP:端口 切换频率每10个商品切换一次断点续采选品采集可能需要采集几百个商品中间中断了要从头开始很浪费时间。实现断点续采。每次采集完一个商品把product_id追加写入进度文件。重新启动时先读取进度文件跳过已采集的商品。# 保存进度withopen(C:\\aliexpress_progress.txt,a)asf:f.write(product_id\n)# 读取进度withopen(C:\\aliexpress_progress.txt,r)asf:collected_idsset(line.strip()forlineinf.readlines())十二、速查表与反爬应对AliExpress有成熟的反爬体系以下是我踩坑之后的应对方法。常见反爬措施一访问频率过高被封IP。应对每个操作之间加随机等待2-5秒使用住宅代理IP不要用数据中心IP。常见反爬措施二出现验证码。应对AliExpress的验证码主要是滑块验证。用影刀的图像识别指令检测到验证码弹窗就报警转人工处理。完全自动化的验证码破解不推荐容易违反平台规则。常见反爬措施三页面结构变化导致元素定位失效。应对准备至少两套定位方案XPath CSS都失败时用图像识别作为第三套方案。速查表数据项所在位置采集方式注意事项价格列表页详情页获取元素文本注意折扣价和原价订单量列表页获取元素文本注意K单位评分列表页获取元素属性可能是图片需OCR评论内容详情页循环相似元素需滚动加载商品图片详情页获取img的src注意主图和细节图总结AliExpress选品数据采集的核心价值在于规模化。人工一天最多能看50个商品用影刀RPA可以采集500个商品而且数据准确率更高。我帮一个跨境卖家搭了这套方案之后他们的选品周期从原来的一周缩短到一天选品成功率上架后30天内出单从大概40%提升到了65%。数据化选品和拍脑袋选品差距就在这里。最后提醒一点AliExpress的平台规则经常变化采集频率一定要控制好不要贪多求快账号被封得不偿失。更多跨境电商自动化实战内容欢迎交流。我的个人网站 home.linyan.cloud 也会持续更新相关教程。#影刀RPA #RPA教程 #跨境电商 #AliExpress #选品自动化作者林焱