操指南:招聘信息批量采集與崗位需求分析)
影刀RPA實(shí)操指南招聘信息批量采集與崗位需求分析想換工作的人挨個(gè)刷新崗位頁做行業(yè)研究的人手動(dòng)抄幾百條崗位要求進(jìn)Excel這兩類人的痛點(diǎn)是同一個(gè)招聘網(wǎng)站的崗位數(shù)據(jù)太散人工整理一天也就幾百條還容易抄錯(cuò)薪資。我用影刀RPA做了一個(gè)招聘信息批量采集流程跑一次能落幾千條崗位數(shù)據(jù)到表格再用Python做崗位需求分析招聘網(wǎng)站只是個(gè)數(shù)據(jù)源主動(dòng)權(quán)在自己手里。這篇影刀RPA實(shí)操指南帶你從零做一遍完整流程搜索條件怎么批量傳、崗位列表怎么循環(huán)采集、詳情頁怎么進(jìn)怎么退、薪資文本怎么清洗成可統(tǒng)計(jì)的字段、最后怎么出分析結(jié)論。跟著做完你會(huì)有一個(gè)可復(fù)用的采集模板以后換任何招聘站點(diǎn)改改定位就能用。我非技術(shù)出身這套流程改過三版中間踩的坑都會(huì)在對(duì)應(yīng)章節(jié)講清楚。認(rèn)識(shí)影刀RPA與安裝五步搞定開發(fā)環(huán)境第一步官網(wǎng)下載客戶端安裝手機(jī)號(hào)注冊(cè)登錄。第二步設(shè)置里安裝瀏覽器插件Chrome和Edge都支持裝完刷新瀏覽器。第三步打開影刀左側(cè)是流程列表中間是編輯畫布右側(cè)是指令面板所有功能都靠拖拽指令到畫布上完成。第四步新建一個(gè)應(yīng)用命名建議帶上日期比如招聘采集_20260927。第五步先跑一遍官方示例流程確認(rèn)環(huán)境正常再開始寫自己的。社區(qū)版每天30分鐘運(yùn)行時(shí)長(zhǎng)調(diào)試階段完全夠批量跑大任務(wù)時(shí)注意分批或者考慮創(chuàng)業(yè)版。元素定位四合一崗位列表是所有采集流程的起點(diǎn)招聘網(wǎng)站的崗位列表是典型的相似元素結(jié)構(gòu)幾十條卡片結(jié)構(gòu)相同內(nèi)容不同。處理它靠四個(gè)定位工具配合。元素捕獲解決抓到第一條XPath解決抓到所有條和抓準(zhǔn)某一條。下面是招聘列表頁最常用的幾種寫法# 捕獲元素崗位列表中的所有崗位卡片鏈接 //div[classjob-list-box]//a # 模糊匹配崗位名稱里包含數(shù)據(jù)分析的卡片 //div[contains(class,job-card)]//*[contains(text(),數(shù)據(jù)分析)] # 層級(jí)定位從薪資標(biāo)簽往上找兩層再取公司名父級(jí)容器內(nèi)定位 //span[contains(class,salary)]/../../div[classcompany-info]//h3 # 參照物定位通過經(jīng)驗(yàn)標(biāo)簽定位同一卡片內(nèi)的薪資 //*[contains(text(),年) and contains(class,exp)]/following-sibling::span[1]CSS選擇器和XPath并列講因?yàn)槟阋獣?huì)在兩者之間選。CSS擅長(zhǎng)簡(jiǎn)單結(jié)構(gòu)div.job-list-box a一行搞定所有鏈接執(zhí)行也快但按文本找元素往上找父級(jí)只有XPath能做。我的習(xí)慣是列表主體用CSS或簡(jiǎn)單XPath跨節(jié)點(diǎn)關(guān)聯(lián)用復(fù)雜XPath。正則表達(dá)式在兩個(gè)地方出場(chǎng)一是元素編輯里用正則匹配動(dòng)態(tài)class二是數(shù)據(jù)清洗階段從薪資文本里提取數(shù)字比如從15-25K·14薪里摳出15、25、14三個(gè)數(shù)第四節(jié)數(shù)據(jù)處理部分給完整代碼。另外影刀還有點(diǎn)擊指定內(nèi)容的元素(web)指令可以直接按文本內(nèi)容點(diǎn)某個(gè)崗位卡片不用寫XPath進(jìn)詳情頁時(shí)很好用。變量與數(shù)據(jù)類型搜索條件和崗位數(shù)據(jù)怎么組織流程要用三類變量搜索條件用列表存比如 [“數(shù)據(jù)分析”,“產(chǎn)品經(jīng)理”,“運(yùn)營(yíng)”]一個(gè)城市一個(gè)關(guān)鍵詞跑一輪每條崗位用字典存鍵是 崗位名、公司、薪資、經(jīng)驗(yàn)、城市、鏈接字典的好處是寫入Excel時(shí)按鍵取值順序亂了也不出錯(cuò)所有崗位攢成一個(gè)列表的列表最后一次性寫表。JSON的套路也要會(huì)有些站點(diǎn)接口返回JSON字符串流程是HTTP獲取→JSON轉(zhuǎn)Python對(duì)象→操作字段→需要存文件時(shí)再轉(zhuǎn)回文本。字典鍵不存在時(shí)影刀返回空值寫表前判斷一下不然Excel里會(huì)出現(xiàn)難看的報(bào)錯(cuò)信息。流程控制三層循環(huán)加異常處理的采集骨架主流程骨架三層循環(huán)外層ForEach列表循環(huán)跑關(guān)鍵詞和城市組合中層循環(huán)相似元素(web)跑當(dāng)前頁的崗位列表內(nèi)層While條件循環(huán)管翻頁。詳情頁的處理是這個(gè)流程的易錯(cuò)點(diǎn)點(diǎn)崗位卡片經(jīng)常打開新標(biāo)簽頁。正確做法是用獲取已打開的網(wǎng)頁對(duì)象指令把新標(biāo)簽頁存成另一個(gè)變量對(duì)它提取詳情字段抓完用關(guān)閉網(wǎng)頁關(guān)掉循環(huán)會(huì)自動(dòng)回到列表頁的下一個(gè)元素。官方文檔對(duì)打開了新標(biāo)簽頁的場(chǎng)景專門給過方案核心就是新網(wǎng)頁對(duì)象用不同變量名。Try-Catch必須包住整個(gè)循環(huán)體。Catch里用輸出日志記錄失敗的崗位鏈接和報(bào)錯(cuò)內(nèi)容Finally里關(guān)掉可能殘留的新標(biāo)簽頁。我第一版沒做異常處理跑到第300條遇到一個(gè)失效崗位整條流程直接停了前面數(shù)據(jù)全在內(nèi)存里沒落表心疼得我當(dāng)晚就重構(gòu)了。網(wǎng)頁自動(dòng)化等待、翻頁與登錄態(tài)三個(gè)必答題等待策略招聘詳情頁是懶加載重災(zāi)區(qū)詳情頁的職位描述經(jīng)常滾動(dòng)才加載全。標(biāo)準(zhǔn)流程點(diǎn)擊進(jìn)詳情后先等待元素(web)等職位描述容器出現(xiàn)超時(shí)10秒再滾動(dòng)鼠標(biāo)滾輪滾兩次觸發(fā)懶加載每次滾動(dòng)后等待頁面底部元素出現(xiàn)。固定等待幾秒的做法在網(wǎng)速波動(dòng)時(shí)必掛別用。翻頁disabled判斷是通用解法招聘站的翻頁按鈕翻到底會(huì)變灰。用IF 元素可見(web)配一個(gè)XPath判斷可點(diǎn)擊狀態(tài)的下一頁按鈕//a[contains(class,next) and not(contains(class,disabled))]抓不到就說明翻完了跳出While循環(huán)。這個(gè)寫法幾乎通用于所有分頁網(wǎng)站記下來值回票價(jià)。登錄態(tài)與驗(yàn)證碼多數(shù)招聘站要登錄才能看聯(lián)系方式或翻多頁。流程開頭判斷登錄框可見就走登錄子流程登錄成功后瀏覽器會(huì)記住Cookie后續(xù)運(yùn)行只要登錄態(tài)沒過期就跳過。有些站點(diǎn)頻繁訪問會(huì)彈驗(yàn)證碼頻率控制在每次訪問間隔2到3秒、每天別抓太多頁比硬破驗(yàn)證碼現(xiàn)實(shí)得多。數(shù)據(jù)處理薪資清洗與崗位需求詞頻分析采集只是原材料需求分析才是價(jià)值所在。原始數(shù)據(jù)先落Excel用寫入內(nèi)容至Excel工作表逐行寫或者攢進(jìn)數(shù)據(jù)表格后寫入表格數(shù)據(jù)一次寫完。薪資是最需要清洗的字段統(tǒng)一換算成月薪區(qū)間# 輸入salary_raw網(wǎng)頁抓到的薪資文本如 15-25K·14薪 或 200-400元/天# 輸出salary_min / salary_max統(tǒng)一為月薪千元importre salary_rawsalary_raw.strip().replace( ,)mre.search(r(\d)-(\d)K·(\d)薪,salary_raw)ifm:# 15-25K·14薪 → 月薪區(qū)間乘以 (14/12) 的年薪折算salary_minint(m.group(1))*int(m.group(3))/12salary_maxint(m.group(2))*int(m.group(3))/12else:mre.search(r(\d)-(\d)K,salary_raw)ifm:salary_min,salary_maxint(m.group(1)),int(m.group(2))else:salary_min,salary_max0,0# 面議或格式不識(shí)別標(biāo)記為0后續(xù)過濾清洗完用Pandas做統(tǒng)計(jì)按城市分組算平均薪資、按經(jīng)驗(yàn)區(qū)間分布、崗位描述里的技能詞詞頻“SQL”“Python”Excel出現(xiàn)次數(shù)一張崗位需求畫像就出來了。這些都可以直接寫在影刀的Python代碼段里不用離開RPA環(huán)境。鼠標(biāo)鍵盤與圖像自動(dòng)化少用但要有兜底手段網(wǎng)頁自動(dòng)化能覆蓋95%的招聘采集需求剩下5%靠鼠標(biāo)鍵盤和圖像兜底。個(gè)別站點(diǎn)驗(yàn)證碼彈窗沒有固定元素結(jié)構(gòu)用等待圖像和點(diǎn)擊圖像按截圖匹配處理滑塊驗(yàn)證碼用拖拽元素或模擬鼠標(biāo)拖動(dòng)配合錨點(diǎn)偏移量。影刀支持虛擬鍵盤鼠標(biāo)驅(qū)動(dòng)安裝后操作不搶占真實(shí)鼠標(biāo)跑流程時(shí)人可以繼續(xù)干別的這個(gè)驅(qū)動(dòng)建議裝上。鍵盤操作主要用在搜索框?qū)嵲诙ㄎ徊坏捷斎肟蛟貢r(shí)點(diǎn)擊后用模擬鍵盤逐字輸入再用回車觸發(fā)搜索。這是最后的手段能用填寫輸入框(web)就別用鍵盤模擬前者快且穩(wěn)。進(jìn)階技能接口監(jiān)聽讓采集效率翻倍招聘列表頁的數(shù)據(jù)通常來自一個(gè)返回JSON的接口。用影刀的開始監(jiān)聽網(wǎng)頁請(qǐng)求指令監(jiān)聽這個(gè)接口地址翻頁時(shí)用使用網(wǎng)頁監(jiān)聽指令獲取數(shù)據(jù)直接拿JSON一條接口響應(yīng)里往往帶著整頁幾十條崗位的全部字段比在頁面上循環(huán)提取快好幾倍還不受頁面渲染影響。流程變成監(jiān)聽→點(diǎn)下一頁→拿響應(yīng)→JSON轉(zhuǎn)對(duì)象→提取字段循環(huán)寫表。缺點(diǎn)是每個(gè)站的接口地址和字段名不同遷移成本高所以我把它和頁面采集做成兩個(gè)子流程結(jié)構(gòu)簡(jiǎn)單的站點(diǎn)走頁面采集結(jié)構(gòu)復(fù)雜或反爬嚴(yán)的走接口監(jiān)聽。系統(tǒng)聯(lián)動(dòng)定時(shí)采集與飛書多維表格沉淀采集任務(wù)用定時(shí)觸發(fā)器安排支持每日、每周、自定義間隔和Cron表達(dá)式跳過法定節(jié)假日也可以勾選。我的配置是每天早上7點(diǎn)跑一輪上班前數(shù)據(jù)已經(jīng)在表里了。觸發(fā)器生效的前提是高級(jí)任務(wù)計(jì)劃已啟用機(jī)器不能休眠Windows電源設(shè)置里關(guān)掉睡眠。結(jié)果沉淀推薦飛書多維表格用新增行記錄-飛書多維表指令把每條崗位寫進(jìn)多維表團(tuán)隊(duì)多人直接在線看還能自己加篩選視圖。發(fā)版到企業(yè)調(diào)度的話任務(wù)監(jiān)控頁面可以配置告警郵箱和釘釘、飛書通知流程異常自動(dòng)提醒無人值守才安心。工程化規(guī)范模板化讓你換一個(gè)站點(diǎn)只改三處這套流程我按模板思路拆了子流程01_登錄保活、02_搜索與翻頁、03_列表提取、04_詳情提取、05_數(shù)據(jù)清洗、06_落表與推送。換新站點(diǎn)時(shí)通常只改三處列表和詳情的元素定位、翻頁判斷的class名、字段清洗的正則。每個(gè)子流程的輸入輸出參數(shù)在屬性面板里寫清楚注釋命名用編號(hào)加下劃線主流程讀起來就是一份目錄。調(diào)試技巧在可疑指令上右鍵添加斷點(diǎn)點(diǎn)單步執(zhí)行一行行跑變量面板里實(shí)時(shí)看每個(gè)變量的值。九成定位問題都是靠單步加變量面板排查出來的比反復(fù)整體運(yùn)行快十倍。易錯(cuò)速查表招聘采集高頻翻車點(diǎn)現(xiàn)象原因解決辦法跑到一半整條流程停止詳情頁異常未捕獲循環(huán)體包Try-CatchCatch記錄并繼續(xù)下一條抓到的薪資是面議或亂碼字段結(jié)構(gòu)隨頁面改版變化清洗時(shí)未匹配到正則就標(biāo)記0事后過濾補(bǔ)抓新標(biāo)簽頁打開了但取不到數(shù)據(jù)用錯(cuò)網(wǎng)頁對(duì)象變量獲取已打開的網(wǎng)頁對(duì)象存成新變量再操作翻頁循環(huán)卡死一直重復(fù)disabled判斷寫反或class變了單步執(zhí)行檢查判斷條件XPath加not(disabled)運(yùn)行時(shí)長(zhǎng)超了社區(qū)版限制一次任務(wù)量太大分城市分關(guān)鍵詞多次運(yùn)行或夜間定時(shí)錯(cuò)峰學(xué)習(xí)資源與延伸閱讀官方文檔里網(wǎng)頁相似元素循環(huán)常見場(chǎng)景及解決方案這篇是招聘采集的必讀新標(biāo)簽頁、頁面刷新兩大坑都給了官方解法。整套招聘采集與分析流程的完整源碼我放在代碼倉庫 home.linyan.cloud可以直接參考改造替換關(guān)鍵詞和定位就能適配你目標(biāo)的城市和崗位。#影刀RPA #RPA自動(dòng)化 #數(shù)據(jù)采集 #批量采集 #數(shù)據(jù)處理 #Python作者林焱