☰
影刀RPA实操指南:招聘信息批量采集与岗位需求分析
2026/9/29 12:16:58 网站建设 项目流程

影刀RPA实操指南:招聘信息批量采集与岗位需求分析

想换工作的人挨个刷新岗位页,做行业研究的人手动抄几百条岗位要求进Excel,这两类人的痛点是同一个:招聘网站的岗位数据太散,人工整理一天也就几百条,还容易抄错薪资。我用影刀RPA做了一个招聘信息批量采集流程,跑一次能落几千条岗位数据到表格,再用Python做岗位需求分析,招聘网站只是个数据源,主动权在自己手里。

这篇影刀RPA实操指南带你从零做一遍完整流程:搜索条件怎么批量传、岗位列表怎么循环采集、详情页怎么进怎么退、薪资文本怎么清洗成可统计的字段、最后怎么出分析结论。跟着做完你会有一个可复用的采集模板,以后换任何招聘站点,改改定位就能用。

我非技术出身,这套流程改过三版,中间踩的坑都会在对应章节讲清楚。

认识影刀RPA与安装:五步搞定开发环境

第一步,官网下载客户端安装,手机号注册登录。第二步,设置里安装浏览器插件,Chrome和Edge都支持,装完刷新浏览器。第三步,打开影刀,左侧是流程列表,中间是编辑画布,右侧是指令面板,所有功能都靠拖拽指令到画布上完成。第四步,新建一个应用,命名建议带上日期,比如"招聘采集_20260927"。第五步,先跑一遍官方示例流程,确认环境正常再开始写自己的。

社区版每天30分钟运行时长,调试阶段完全够,批量跑大任务时注意分批,或者考虑创业版。

元素定位四合一:岗位列表是所有采集流程的起点

招聘网站的岗位列表是典型的相似元素结构:几十条卡片,结构相同内容不同。处理它靠四个定位工具配合。

元素捕获解决"抓到第一条",XPath解决"抓到所有条"和"抓准某一条"。下面是招聘列表页最常用的几种写法:

# 捕获元素:岗位列表中的所有岗位卡片链接 //div[@class="job-list-box"]//a # 模糊匹配:岗位名称里包含"数据分析"的卡片 //div[contains(@class,'job-card')]//*[contains(text(),'数据分析')] # 层级定位:从薪资标签往上找两层,再取公司名(父级容器内定位) //span[contains(@class,'salary')]/../../div[@class="company-info"]//h3 # 参照物定位:通过"经验"标签定位同一卡片内的薪资 //*[contains(text(),'年') and contains(@class,'exp')]/following-sibling::span[1]

CSS选择器和XPath并列讲,因为你要会在两者之间选。CSS擅长简单结构:div.job-list-box a一行搞定所有链接,执行也快;但"按文本找元素""往上找父级"只有XPath能做。我的习惯是列表主体用CSS或简单XPath,跨节点关联用复杂XPath。

正则表达式在两个地方出场:一是元素编辑里用正则匹配动态class,二是数据清洗阶段从薪资文本里提取数字,比如从"15-25K·14薪"里抠出15、25、14三个数,第四节数据处理部分给完整代码。

另外影刀还有"点击指定内容的元素(web)"指令,可以直接按文本内容点某个岗位卡片,不用写XPath,进详情页时很好用。

变量与数据类型:搜索条件和岗位数据怎么组织

流程要用三类变量:搜索条件用列表存,比如 [“数据分析”,“产品经理”,“运营”],一个城市一个关键词跑一轮;每条岗位用字典存,键是 岗位名、公司、薪资、经验、城市、链接,字典的好处是写入Excel时按键取值,顺序乱了也不出错;所有岗位攒成一个列表的列表,最后一次性写表。

JSON的套路也要会:有些站点接口返回JSON字符串,流程是HTTP获取→JSON转Python对象→操作字段→需要存文件时再转回文本。字典键不存在时影刀返回空值,写表前判断一下,不然Excel里会出现难看的报错信息。

流程控制:三层循环加异常处理的采集骨架

主流程骨架三层循环:外层ForEach列表循环跑关键词和城市组合;中层"循环相似元素(web)"跑当前页的岗位列表;内层While条件循环管翻页。

详情页的处理是这个流程的易错点:点岗位卡片经常打开新标签页。正确做法是用"获取已打开的网页对象"指令把新标签页存成另一个变量,对它提取详情字段,抓完用"关闭网页"关掉,循环会自动回到列表页的下一个元素。官方文档对"打开了新标签页"的场景专门给过方案,核心就是新网页对象用不同变量名。

Try-Catch必须包住整个循环体。Catch里用"输出日志"记录失败的岗位链接和报错内容,Finally里关掉可能残留的新标签页。我第一版没做异常处理,跑到第300条遇到一个失效岗位,整条流程直接停了,前面数据全在内存里没落表,心疼得我当晚就重构了。

网页自动化:等待、翻页与登录态三个必答题

等待策略:招聘详情页是懒加载重灾区

详情页的职位描述经常滚动才加载全。标准流程:点击进详情后,先"等待元素(web)"等职位描述容器出现,超时10秒;再"滚动鼠标滚轮"滚两次触发懒加载,每次滚动后等待页面底部元素出现。固定等待几秒的做法在网速波动时必挂,别用。

翻页:disabled判断是通用解法

招聘站的翻页按钮翻到底会变灰。用"IF 元素可见(web)"配一个XPath判断可点击状态的下一页按钮://a[contains(@class,"next") and not(contains(@class,"disabled"))],抓不到就说明翻完了,跳出While循环。这个写法几乎通用于所有分页网站,记下来值回票价。

登录态与验证码

多数招聘站要登录才能看联系方式或翻多页。流程开头判断登录框可见就走登录子流程,登录成功后浏览器会记住Cookie,后续运行只要登录态没过期就跳过。有些站点频繁访问会弹验证码,频率控制在每次访问间隔2到3秒、每天别抓太多页,比硬破验证码现实得多。

数据处理:薪资清洗与岗位需求词频分析

采集只是原材料,需求分析才是价值所在。原始数据先落Excel:用"写入内容至Excel工作表"逐行写,或者攒进数据表格后"写入表格数据"一次写完。

薪资是最需要清洗的字段,统一换算成月薪区间:

# 输入:salary_raw,网页抓到的薪资文本,如 "15-25K·14薪" 或 "200-400元/天"# 输出:salary_min / salary_max,统一为月薪(千元)importre salary_raw=salary_raw.strip().replace(' ','')m=re.search(r'(\d+)-(\d+)K·(\d+)薪',salary_raw)ifm:# 15-25K·14薪 → 月薪区间乘以 (14/12) 的年薪折算salary_min=int(m.group(1))*int(m.group(3))/12salary_max=int(m.group(2))*int(m.group(3))/12else:m=re.search(r'(\d+)-(\d+)K',salary_raw)ifm:salary_min,salary_max=int(m.group(1)),int(m.group(2))else:salary_min,salary_max=0,0# 面议或格式不识别,标记为0后续过滤

清洗完用Pandas做统计:按城市分组算平均薪资、按经验区间分布、岗位描述里的技能词词频(“SQL”“Python”"Excel"出现次数),一张岗位需求画像就出来了。这些都可以直接写在影刀的Python代码段里,不用离开RPA环境。

鼠标键盘与图像自动化:少用,但要有兜底手段

网页自动化能覆盖95%的招聘采集需求,剩下5%靠鼠标键盘和图像兜底。个别站点验证码弹窗没有固定元素结构,用"等待图像"和"点击图像"按截图匹配处理;滑块验证码用"拖拽元素"或模拟鼠标拖动,配合锚点偏移量。影刀支持虚拟键盘鼠标驱动,安装后操作不抢占真实鼠标,跑流程时人可以继续干别的,这个驱动建议装上。

键盘操作主要用在搜索框:实在定位不到输入框元素时,点击后用模拟键盘逐字输入,再用回车触发搜索。这是最后的手段,能用"填写输入框(web)"就别用键盘模拟,前者快且稳。

进阶技能:接口监听让采集效率翻倍

招聘列表页的数据通常来自一个返回JSON的接口。用影刀的"开始监听网页请求"指令监听这个接口地址,翻页时用"使用网页监听指令获取数据"直接拿JSON,一条接口响应里往往带着整页几十条岗位的全部字段,比在页面上循环提取快好几倍,还不受页面渲染影响。

流程变成:监听→点下一页→拿响应→JSON转对象→提取字段循环写表。缺点是每个站的接口地址和字段名不同,迁移成本高,所以我把它和页面采集做成两个子流程,结构简单的站点走页面采集,结构复杂或反爬严的走接口监听。

系统联动:定时采集与飞书多维表格沉淀

采集任务用定时触发器安排,支持每日、每周、自定义间隔和Cron表达式,跳过法定节假日也可以勾选。我的配置是每天早上7点跑一轮,上班前数据已经在表里了。触发器生效的前提是高级任务计划已启用,机器不能休眠,Windows电源设置里关掉睡眠。

结果沉淀推荐飞书多维表格:用"新增行记录-飞书多维表"指令把每条岗位写进多维表,团队多人直接在线看,还能自己加筛选视图。发版到企业调度的话,任务监控页面可以配置告警邮箱和钉钉、飞书通知,流程异常自动提醒,无人值守才安心。

工程化规范:模板化让你换一个站点只改三处

这套流程我按模板思路拆了子流程:01_登录保活、02_搜索与翻页、03_列表提取、04_详情提取、05_数据清洗、06_落表与推送。换新站点时通常只改三处:列表和详情的元素定位、翻页判断的class名、字段清洗的正则。每个子流程的输入输出参数在属性面板里写清楚注释,命名用编号加下划线,主流程读起来就是一份目录。

调试技巧:在可疑指令上右键添加断点,点"单步执行"一行行跑,变量面板里实时看每个变量的值。九成定位问题都是靠单步加变量面板排查出来的,比反复整体运行快十倍。

易错速查表:招聘采集高频翻车点

现象原因解决办法
跑到一半整条流程停止详情页异常未捕获循环体包Try-Catch,Catch记录并继续下一条
抓到的薪资是"面议"或乱码字段结构随页面改版变化清洗时未匹配到正则就标记0,事后过滤补抓
新标签页打开了但取不到数据用错网页对象变量获取已打开的网页对象存成新变量再操作
翻页循环卡死一直重复disabled判断写反或class变了单步执行检查判断条件,XPath加not(disabled)
运行时长超了社区版限制一次任务量太大分城市分关键词多次运行,或夜间定时错峰

学习资源与延伸阅读

官方文档里"网页相似元素循环常见场景及解决方案"这篇是招聘采集的必读,新标签页、页面刷新两大坑都给了官方解法。整套招聘采集与分析流程的完整源码我放在代码仓库 home.linyan.cloud,可以直接参考改造,替换关键词和定位就能适配你目标的城市和岗位。

#影刀RPA #RPA自动化 #数据采集 #批量采集 #数据处理 #Python

作者:林焱

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

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

立即咨询