☰
影刀RPA新手教程:快手数据采集实战——短视频账号数据与作品信息
2026/10/7 6:56:28 网站建设 项目流程

影刀RPA新手教程:快手数据采集实战——短视频账号数据与作品信息

认识影刀与安装

影刀客户端装好之后,确认一件事:Chrome版本和影刀内置浏览器版本一致。版本不一致操作快手网页时白屏或元素定位全废。安装路径别带中文别带空格,"C:/Program Files (x86)/影刀"这种路径后面Excel操作、文件下载全报错。装完重启一次电脑,影刀有些驱动需要重启才生效。

home.linyan.cloud 整理了各平台采集模板,快手那个直接导入改URL就能跑。

元素定位四合一

快手页面的元素定位和B站不同,快手重度依赖动态class和React渲染。

CSS选择器定位:快手粉丝数在.user-info-fans这个元素下,但class名每隔几周就变一次。用XPath更稳——粉丝数定位用//span[contains(text(),"粉丝")]的父节点下第一个数字span。XPath定位:作品列表每条视频卡片用//div[@class="video-item"]//span[@class="play-count"],注意快手有些页面class是自动生成的hash值,别硬编码。相似元素组:快手作品列表一屏显示6-8条,用"捕获相似元素"框选整个视频卡片区域,一次获取所有作品信息。ID定位:快手个人主页的唯一标识在URL里(快手ID),页面内没有固定ID锚点,这个方式用不

上。

踩坑重点:快手页面是React SPA,元素节点层级嵌套特别深,经常7-8层div套div。捕捉元素时影刀默认选到最内层节点,校验不稳定。手动在元素编辑器里把中间那些通用div层级去掉,只留tag+关键属性,校验成功率翻倍。

另一个坑:快手点赞数/评论数这些数据有时候在父元素的title属性里,不在文本节点里。用「获取元素属性」取title属性值比「获取元素文本」更靠谱。

变量与数据类型

快手采集流程需要的核心变量:

  • account_url:字符串,快手账号主页URL
  • account_name:字符串,账号昵称
  • fans_count:整数,粉丝数(原始文本"256.3万"需转换)
  • video_cards:列表,相似元素组(所有视频卡片)
  • current_play:整数,单个作品播放量
  • current_like:整数,单个作品点赞数
  • current_comment:整数,单个作品评论数
  • growth_data:字典,按日期存储的成长数据
  • output_excel:Excel对象,输出文件

快手的数据格式更杂:粉丝数有"256.3万"和"1.2亿"两种,播放量有"23.4万"和纯数字"34521"两种混着用。写一个通用数字解析子流程,输入原始字符串,输出整数。逻辑是:判断是否包含"万"→去除→乘10000;判断是否包含"亿"→去除→乘100000000;都不包含直接转整数;遇到空值或"–"返回0。

字典growth_data的结构:{"2024-03-15": {"fans": 256300, "works_count": 42, "avg_play": 12000, "avg_like": 800}}。每天跑一次这个流程,往字典里追加一条记录,用Excel写入不同sheet页,就能看出粉丝增长曲线。

流程控制

主流程逻辑:

  1. 打开浏览器 → 打开快手账号主页
  2. 获取账号昵称/粉丝数 → 存入变量
  3. 滚动加载全部作品(无限循环+条件退出)
  4. 捕获作品相似元素组 → For循环遍历
  5. 每条作品获取播放量/点赞数/评论数 → 存入列表
  6. 计算平均值 → 写入Excel当前sheet页
  7. 判断是否需要采集下一个账号(列表循环)

滚动加载是快手最关键的流程控制点。快手作品列表不是分页的,是无限滚动加载。逻辑:无限循环 → 鼠标滚动到底部 → 延迟5秒 → 获取当前作品卡片数量 → 和上一次数量对比 → 不变则到底退出。快手比B站更慢,每次滚动后必须5秒以上等待,3秒不够数据加载不出来。

For次数循环和无限循环的区别:For次数循环适合已知数量场景(如遍历30条商品),无限循环适合不确定数量场景(如滚动加载)。快手的滚动加载用无限循环+退出条件判断,作品遍历用For次数循环遍历相似元素组。

网页自动化

快手网页自动化三大坑:懒加载、弹窗、SPA路由。

懒加载前面说了。弹窗处理:快手PC端经常弹出"下载APP"弹窗或登录提示,在流程开头加判断——「判断元素是否存在」检测弹窗关闭按钮,存在就点击关闭。这个判断放在每次滚动和每次点击操作前,不是只放一次。

SPA路由:快手点击作品进入详情页不是新开标签页,是同页面路由跳转。这意味着点击后"返回"不是浏览器后退按钮,而是页面上的返回按钮。用XPath定位//div[contains(@class,"back-btn")]或直接用键盘Esc键返回。踩过坑:用浏览器后退会回到快手首页而不是作品列表。

iframe场景:快手有些页面内嵌iframe(如广告位),元素捕捉时影刀可能选到iframe里的元素。如果校验时发现元素在iframe节点下,切到iframe内部再捕捉,或者干脆排除iframe层级。

网页监听方案:快手的数据接口是api.kuaishou.com/rest/n/feed/profile,用F12找到这个请求,影刀里用监听模式直接拿JSON。监听比元素抓取快5倍,但接口可能有反爬检测,新手先用元素抓取跑通再升级。

数据处理

数字解析子流程是快手采集的核心数据处理模块。完整逻辑:

输入:raw_text(原始字符串,如"256.3万粉丝")
步骤1:字符串替换"粉丝"为空 → “256.3万”
步骤2:If判断是否包含"亿" → 是:替换"亿"为空→转浮点→乘1e8→转整数
步骤3:If判断是否包含"万" → 是:替换"万"为空→转浮点→乘1e4→转整数
步骤4:Else → 直接转整数
步骤5:异常处理:转换失败返回0

列表数据聚合:遍历完成后,从所有作品的播放量列表中计算平均值。用影刀的「列表求和」和「列表长度」指令,总和除以数量得到平均值。互动率计算:点赞数/播放量的比值,用浮点数运算保留2位小数。

日期格式处理:快手作品发布时间显示"3天前"“2周前”,不是标准日期。需要转换逻辑——获取当前日期(影刀内置变量current_date),根据"X天前"往前推算具体日期。写一个子流程专门做这个转换,输入"3天前",输出"2024-03-12"。

鼠标键盘图像自动化

快手页面的鼠标操作比B站多,因为要频繁滚动和点击视频卡片。

鼠标滚动:方向向下,距离800像素,次数3次。快手的滚动触发比B站敏感,一次滚动可能加载10条以上。滚动后延迟5秒不是3秒——快手服务器响应慢。

键盘操作:Esc键返回详情页、Ctrl+A全选文本框(采集描述信息时)、Tab键切换输入焦点。影刀「键盘输入」指令支持组合键,Ctrl+Tab切换浏览器标签页。

图像自动化备用:快手改版后元素定位失败时,截取关键按钮的图像作为图像点击目标。“返回按钮”“关闭弹窗按钮”"翻页箭头"各截一张图备用。图像识别的缺点是不支持相似元素循环,只能单点操作。

进阶技能

网页监听采集快手API数据:

  1. F12 → Network → 筛选XHR请求
  2. 找到graphql或rest/n/feed类型的API
  3. 影刀:获取网页对象 → 开始监听请求 → 传入URL模式 → 延迟5秒 → 获取监听结果 → 停止监听
  4. 结果是字典,取["body"]→ 字符串转JSON对象
  5. JSON结构里直接取fanCount、videoList等字段

正则表达式:快手作品标题有些带"#话题标签",采集时需要把标签去掉。正则#[^#]+#匹配所有话题标签,用字符串替换清空。发布时间字段正则\d+[天小时周月年]前匹配相对时间,用来触发日期转换子流程。

全局变量在元素编辑中的应用:快手账号URL作为全局变量传入元素定位。如果元素里有账号ID相关的属性值,用全局变量替代固定文本,换账号采集时只改全局变量值就行。

平台实战

快手采集实战要点:

  • PC端快手网页功能不全,部分数据只能APP端看到。PC端能采集:粉丝数、作品列表、播放量、点赞数、评论数
  • 快手反爬比B站严,连续采集超过30个账号会触发IP限制。加账号间隔5秒,超过30个换IP(用影刀内置浏览器切换代理)
  • 作品详情页有些视频是"付费课程",点击后弹出付费弹窗。判断弹窗存在就关闭并跳过这条

抖音采集同理:打开抖音创作者主页 → 滚动加载 → 相似元素遍历 → 数据写入Excel。抖音的反爬更严,验证码频率更高,建议用监听模式抓取API数据而不是元素操作。

小红书采集:笔记列表是瀑布流布局,元素结构比快手更复杂。需要关联父元素找子元素——先捕捉笔记卡片父元素组,再在每个父元素内部找标题和点赞数子元素。

系统联动

采集数据写入Excel后和飞书/钉钉联动:

飞书多维表格:比Excel更适合团队协作。影刀支持飞书多维表格的写入操作——获取多维表格的app_token和table_id,用HTTP请求POST数据。每条采集结果写入一行,团队成员直接在飞书看最新数据。

飞书Webhook告警:粉丝增长超过5%自动发飞书消息。影刀流程结尾加判断——当前粉丝数和上次采集的粉丝数对比,增长率超过5%就触发HTTP请求POST飞书Webhook。

钉钉机器人类似配置,群设置→添加机器人→拿Webhook URL→影刀HTTP请求POST。

邮件联动:影刀支持「发送邮件」指令,采集完成后自动发邮件给运营团队。附件带上Excel文件,邮件正文写采集摘要。

工程化与规范

流程拆分规范:

  • 主流程:kuaishou_account_collector(整体调度)
  • 子流程1:ks_number_parser(数字解析)
  • 子流程2:ks_date_converter(日期转换)
  • 子流程3:ks_scroll_loader(滚动加载)
  • 子流程4:ks_feishu_writer(飞书写入)

变量命名:ks_前缀表示快手相关,raw_表示原始未处理数据,parsed_表示处理后数据,out_表示输出。

异常处理策略:所有网页操作指令设超时10秒(快手慢),超时后重试一次,再超时跳过当前项继续。「获取元素」指令的高级选项里设超时时间,默认3秒太短。

多账号采集用列表循环:把所有账号URL放在Excel或列表变量里,外层循环遍历账号列表,内层循环遍历每个账号的作品。账号间加5秒延迟防反爬。

速查表与常见报错

报错原因解决
元素校验失败快手改版class变了去掉hash类class,用xpath+contains
粉丝数抓到空元素在title属性不在文本用获取元素属性取title值
滚动后数据全空未等加载完成延迟5秒以上
SPA页面返回失败用了浏览器后退改用页面返回按钮或Esc键
iframe干扰广告iframe遮挡元素编辑排除iframe层级

| NoneType object | 变量未赋值 | 流程开头初始化所有变量 |
| 数值转换报错 | "256.3万"无法直接转整数 | 用数字解析子流程 |
| 日期格式不对 | "3天前"非标准格式 | 用日期转换子流程 |
| IP被限制 | 连续采集超过30账号 | 账号间隔5秒+换代理 |
| 付费弹窗阻断 | 点击了付费课程视频 | 判断弹窗存在→关闭→跳过 |

核心指令速查:

  • 打开网页 / 获取网页对象 / 关闭网页
  • 捕获相似元素 / 循环相似元素 / 获取相似元素列表
  • 获取元素属性 / 获取元素文本(优先用属性取值)
  • 鼠标滚动 / 键盘输入(Esc返回) / 延迟执行(5秒)
  • 判断元素是否存在 / If条件判断 / 退出循环
  • 字符串替换 / 正则匹配 / 转整数 / 转浮点数
  • 列表求和 / 列表长度 / 列表聚合
  • 启动Excel / 写入Excel / 保存Excel
  • 开始监听请求 / 获取监听结果 / 停止监听
  • HTTP请求(飞书Webhook) / 发送邮件

内容标签:影刀RPA / 快手数据采集 / 懒加载滚动 / SPA页面 / 相似元素 / 数字解析 / 飞书告警 / 多账号批量 / 反爬处理 / 日期转换

作者:林焱

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询