999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

招聘好幫手:用“蜂巢數據”篩選簡歷

2016-03-21 03:51:30
辦公自動化 2016年3期
關鍵詞:頁面數據庫

非 貓

?

招聘好幫手:用“蜂巢數據”篩選簡歷

非貓

Recruitment a Good Assistant: Use "Honeycomb Data" to Screen Resumes

Fei Mao

想要招到好員工,篩選簡歷是第一關,而且是一件枯燥的任務。本文教大家用蜂巢數據這款軟件來自動化篩選簡歷。

一、前言

我是一家IT公司的項目經理,最近公司準備啟動一個新項目,我負責技術團隊的搭建。

招聘絕對是一件很耗體力的事,我這里主要指通過網上招聘渠道招人。每天要在茫茫的簡歷堆里挑選出符合公司用人要求的簡歷,有時候看了數十個也沒一個合適的,有時候前兩天剛看過的簡歷今天又看了一遍,相當考驗人的耐心。

這是一種機械又枯燥的勞動,應該交給機器來做,至少應該讓機器把大部分無用的數據先過濾掉才對。

前段時間聽朋友介紹過”蜂巢數據”這款軟件,它能對網頁數據進行自動化采集,處理,保存。我就用它來篩選網絡上的簡歷。

二、正文

“蜂巢數據”可以從官方網站上下載:http://cn.hdata.me/

也可以通過其它軟件下載站下載,請注意要下載1.3以后的版本,1.3以前的版本復制XPath有BUG。

下載安裝后,運行“蜂巢數據”,將看到如圖1所示的界面:

從左到右,依次是導航面板,任務面板和工作區。導航面板里可以看到各個任務組,點擊任務組后會打開任務面板,任務面板里面列出的是當前選中的任務組里的任務。

“蜂巢數據”以任務為工作單元,每個任務擁有自己的采集腳本和數據庫。各任務之間相互獨立,互不影響。

因為我負責的項目需要Android程序員,這里我就以Android程序員簡歷采集為例,給大家示范如何用“蜂巢數據”采集和過濾簡歷。

點擊工具欄上的“新建任務”按鈕,在彈出的新建任務對話框中輸入任務名“Android程序員”,然后點保存,如圖2所示:

任務創建完成后,“蜂巢數據”會在工作區自動打開任務編輯窗口。我們將在任務編輯窗口里完成編寫采集腳本,定義數據字段等工作。

任務編輯窗口的布局如圖3所示(為了擴大視圖,我關閉了導航面板和任務面板,只留下工作區):

上面是腳本編輯區和瀏覽器,腳本編輯區用于編寫采集腳本,瀏覽器用于輔助腳本調試,當腳本運行時,瀏覽器會根據腳本的指令打開網頁。

下面是各種輔助腳本編寫的工具面板和數據字段編輯區:

1、輸出面板會顯示腳本運行過程中打印的內容。

2、網頁審查面板可以查看瀏覽器中打開的網頁DOM結構。

3、源文件面板可以查看瀏覽器中打開的網頁的源碼。

4、數據字段面板用于對當前任務數據庫字段的編輯。

介紹完任務編輯界面,接下來我們開始動工。

首先我們來定義數據字段,“蜂巢數據”會根據采集腳本,把網頁上的數據保存到本地數據庫供我們查看。我們要在腳本運行之前設計好數據庫,有哪些內容需要保存。

這里要采集的是簡歷,一般個人簡歷包括這幾個部分:姓名,性別,年齡,工作經驗,學歷,個人簡介,簡歷鏈接等數據。

我們在數據字段面板中,點擊添加字段,在彈出的添加字段對話框里填寫字段名,然后點擊保存。添加字段對話框里有一個“過濾重復數據”選項,鉤上后,如果數據庫里該字段下已存在相同的數據,數據將會被丟棄。我肯定不想看到重復的簡歷,所以這里對簡歷鏈接進行過濾。如圖4所示:

設計完數據庫字段后,我們可以開始編寫采集腳本了。采集腳本需要用JavaScript語言編寫(一種非常簡單的腳本語言,有網頁制作經驗的朋友應該很熟悉,百度上可以搜索到很多教程,這里就不多介紹了)。

第一步我們要打開待采集的網頁,我要從58同城上采集Android程序員簡歷,58同城里搜索簡歷的網頁地址是:http://hz.58.com/searchjob/?key=android

在“蜂巢數據”里通過腳本打開該頁面,語句是:

load("http://hz.58.com/searchjob/?key=android");

如果你不懂JavaScript,可以直接復制上面的代碼到編輯區,把網頁地址替換成任何你想打開的頁面即可。需要注意的是,括號和雙引號不能漏寫也不能多寫,且必須是英文字符。

在腳本編輯區輸入以上代碼后,點擊編輯區左邊的運行按鈕,可以看到腳本運行的效果。目前我們只是打開了簡歷搜索頁面,還沒開始采集數據。如圖5所示:

第二步我們要分析網頁內容,看看哪些數據是我們需要的。我們在瀏覽器里看下58同城的簡歷搜索結果,是一個列表,每一行是一條簡歷信息,分別有姓名,性別,年齡,工作經驗,學歷等我們所需要的數據。

“蜂巢數據”可以根據XPath來提取網頁里的數據(XPath用于標識網頁中元素的地址,有興趣的朋友可以百度下)。我們在第一條簡歷的姓名上點擊鼠標右鍵,在彈出菜單里選擇復制XPath,如圖6所示:

然后在腳本編輯框內,我們通過剛才復制的XPath提取姓名:name = inner_text("http://*[@id='infolist']/dl/dd[2]");

(注意:剛才復制過來的XPath,infolist是被雙引號包起來的,腳本里我們替換成單引號,這是JavaScript語法需要,有興趣的朋友可以學習下JavaScript語法)

用同樣的辦法,我們再提取性別,年齡,工作經驗,學歷等數據,然后我們通過“蜂巢數據”提供的print方法,把提取到的數據打印到輸出面板,如圖7所示:

完整的代碼如下:

load("http://hz.58.com/searchjob/?key=android");

name = inner_text("http://*[@id='infolist']/dl/dd[2]");

gender = inner_text("http://*[@id='infolist']/dl/dd[3]");

age = inner_text("http://*[@id='infolist']/dl/dd[4]");

exp = inner_text("http://*[@id='infolist']/dl/dd[5]");

brief = inner_text("http://*[@id='infolist']/dl/dt/span[2]");

link = attribute("http://*[@id='infolist']/dl/dt/a","href");

print("姓名:" + name.trim());

print("性別:" + gender.trim());

print("年齡:" + age.trim());

print("工作經驗:" + exp.trim());

print("個人簡介:" + brief.trim());

print("簡歷鏈接:" + link.trim());

在輸出面板,我們可以看到,姓名,性別,年齡,工作經驗等信息。這些就是蜂巢數據根據腳本從網頁中提取的數據。

細心的朋友可能發現了,簡歷鏈接的提取跟其它元素有些不一樣,用了attribute這個函數。在58同城的網頁上,點擊簡歷后會打開另一個頁面顯示該簡歷的內容,這是一個網頁鏈接,通過attribute函數我們就能獲取這個鏈接地址,而不是網頁上顯示的文字。熟悉網頁制作的朋友應該猜到了,attribute函數的第二個參數href指的就是網頁鏈接中的href。

到目前為止,我們只是把提取的數據打印出來,接下來我們把提取的數據保存到數據庫,方便以后查看。保存數據很簡單,只需要調用save方法就可以了:

save([name.trim(),gender.trim(),age.trim(),exp.trim(),brief.trim(),link.trim()]);

現在運行腳本,我們可以在數據字段面板里看到保存的數據,如圖8所示:

我們已經成功采集到了第一條簡歷,接下來我們把整個頁面的簡歷都采集過來。

我們把網頁拉到最下面,復制最后一條簡歷姓名的XPath,跟第一條對比下,看看有啥區別:

//*[@id="infolist"]/dl/dd[2]

//*[@id="infolist"]/dl[35]/dd[2]

大家應該注意到了,第一條XPath中間是dl(等同于dl [1]),最后一條XPath中間是dl[35]。也就是說,每條簡歷的XPath只有dl[*]中間的數字是不一樣的,學過JavaScript的朋友可能已經想到了,可以通過一個循環語句來采集所有簡歷:

load("http://hz.58.com/searchjob/?key=android");

for(i = 1;i < 100;i++){

if(!has_element("http://*[@id='infolist']/dl[" + i + "]/dd[2]"))

break;

name = inner_text("http://*[@id='infolist']/dl[" + i + "]/dd[2]");

gender = inner_text("http://*[@id='infolist']/dl[" + i + "]/dd[3]");

age = inner_text("http://*[@id='infolist']/dl[" + i + "]/dd[4]");

exp = inner_text("http://*[@id='infolist']/dl[" + i + "]/dd[5]");

brief = inner_text("http://*[@id='infolist']/dl[" + i + "]/dt/span[2]");

link = attribute("http://*[@id='infolist']/dl[" + i + "]/dt/a","href");

save([name.trim(),gender.trim(),age.trim(),exp.trim(),brief.trim(),link.trim()]);

}

上面代碼中的has_element是蜂巢數據提供的一個輔助函數,用來判斷網頁元素是否存在,因為我們不知道網頁里總共有幾條簡歷,所以需要通過has_element進行檢測。運行這段代碼后,我們會在數據字段面板里看到總共采集了35條簡歷,如圖9所示:

單個網頁上的簡歷采集完了,但58上搜到的簡歷不只一頁,接下來我們看看怎么用蜂巢數據采集多個頁面的數據。

把網頁拉到最下面,在第2頁的數字上右擊鼠標,選擇復制鏈接地址,用同樣的方法我們復制第3頁的鏈接地址對比下各個頁面的區別,如圖10所示:

http://hz.58.com/searchjob/pn2/?key=android

http://hz.58.com/searchjob/pn3/?key=android

對比第2頁和第3頁的鏈接地址,我們發現只有中間的pn2和pn3是不一樣的,同樣的我們可以通過一個循環分別打開各個頁面進行采集:

for(a = 1;a <= 5;a++){

load("http://hz.58.com/searchjob/pn" + a + "/?key=android");

for(i = 1;i <= 100;i++){

if(!has_element("http://*[@id='infolist']/dl[" + i + "]/dd[2]"))

break;

name = inner_text("http://*[@id='infolist']/dl[" + i + "]/dd[2]");

gender = inner_text("http://*[@id='infolist']/dl[" + i + "]/dd[3]");

age = inner_text("http://*[@id='infolist']/dl[" + i + "]/dd[4]");

exp = inner_text("http://*[@id='infolist']/dl[" + i + "]/dd[5]");

brief = inner_text("http://*[@id='infolist']/dl[" + i + "]/dt/span[2]");

link = attribute("http://*[@id='infolist']/dl[" + i + "]/dt/a","href");

save([name.trim(),gender.trim(),age.trim(),exp.trim(),brief.trim(),link.trim()]);

}}

這里我只采集了5個頁面,因為再后面的簡歷大部分可能都是過時的,沒必要采集。具體采集幾頁,大家根據實際需求來設置就可以了。

腳本的編寫算是告一段落了,到目前為止,我們都在任務編輯模式下工作,采集到的數據也沒有真正保存到數據庫,關閉任務編輯窗口后采集到的數據就會消失。接下來我們在真實環境下運行腳本。

點擊工具欄上的保存按鈕保存任務,然后在任務面板里鼠標右擊Android程序員,選擇開始任務,如圖12所示:

任務運行結束后,鼠標右擊Android程序員,選擇查看數據,我們就可以在新打開的標簽里看到采集到的數據了,這些數據已經保存在數據庫里了,關閉蜂巢數據后也不會丟失。你還可以選擇導致數據到Excel進一步處理。如圖13所示:

以后每天我只需要打開蜂巢數據,運行一遍Android程

序員任務,就能采集到當天更新的Android程序員簡歷,而且蜂巢數據已經幫我過濾過重復的簡歷,省了我不少時間。

三、結尾

通過本文大家應該對“蜂巢數據”的使用方法已經有所了解,只要會點JavaScript編程基礎,就可以很方便地編寫腳本采集你所需要的內容。

由于篇幅的原因,這里我就不深入去講解怎么用腳本篩選簡歷,無非就是通過JavaScript對提取到的數據進行分析,我相信大家熟悉了JavaScript語法后,這些都不是難事。

除了文中提到的簡歷篩選,“蜂巢數據”可以做的事還很多。比如找工作篩選職位,行業數據分析,論壇回帖跟蹤等。希望“蜂巢數據”能對你有所幫助。

猜你喜歡
頁面數據庫
微信群聊總是找不到,打開這個開關就好了
大狗熊在睡覺
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
同一Word文檔 縱橫頁面并存
數據庫
財經(2010年20期)2010-10-19 01:48:32
主站蜘蛛池模板: 国产素人在线| A级全黄试看30分钟小视频| 91久久夜色精品国产网站 | 国产杨幂丝袜av在线播放| 中文天堂在线视频| 亚洲人成网站色7777| 欧美日本视频在线观看| 91色综合综合热五月激情| 男女性午夜福利网站| 国产激爽大片高清在线观看| 国产鲁鲁视频在线观看| 亚洲AV成人一区国产精品| 亚洲黄色视频在线观看一区| 在线99视频| 免费jizz在线播放| 国产成人夜色91| 综合成人国产| 欧美全免费aaaaaa特黄在线| 久久美女精品| 日韩午夜福利在线观看| 成人av专区精品无码国产| 国模沟沟一区二区三区| 99视频在线免费观看| 男女男免费视频网站国产| 真人高潮娇喘嗯啊在线观看| 日韩欧美中文亚洲高清在线| 潮喷在线无码白浆| 又污又黄又无遮挡网站| 免费在线不卡视频| 欧美高清国产| 在线精品亚洲国产| 亚洲国产亚综合在线区| 国产在线麻豆波多野结衣| 色哟哟国产精品一区二区| 久久96热在精品国产高清 | 久久婷婷五月综合97色| 精品视频在线观看你懂的一区| 国产日本欧美在线观看| 狠狠做深爱婷婷久久一区| 中文字幕第1页在线播| 欧美成人二区| 久久精品亚洲专区| 美女无遮挡免费视频网站| 日韩成人午夜| 国产丝袜无码精品| 91无码人妻精品一区| 激情综合激情| 玩两个丰满老熟女久久网| 午夜免费视频网站| 久久久91人妻无码精品蜜桃HD| 波多野结衣的av一区二区三区| 欧美精品成人一区二区在线观看| 国产成人h在线观看网站站| 亚洲国产综合精品一区| 国外欧美一区另类中文字幕| 亚洲熟女偷拍| 亚洲视频免费播放| 亚洲国产精品久久久久秋霞影院| 国产成人一区| 激情乱人伦| 久久精品电影| 国产剧情国内精品原创| 熟女日韩精品2区| 亚洲成a人在线播放www| 污网站在线观看视频| 色综合日本| 欧洲极品无码一区二区三区| 欧美精品在线看| 先锋资源久久| 国产微拍精品| 久久精品国产在热久久2019| 91成人精品视频| 免费网站成人亚洲| 天堂成人在线视频| 99在线观看国产| 亚洲午夜福利在线| 欧美在线精品怡红院| 国产裸舞福利在线视频合集| 欧美日韩国产高清一区二区三区| 免费无码网站| 成人午夜视频免费看欧美| 8090成人午夜精品|