亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        招聘好幫手:用“蜂巢數(shù)據(jù)”篩選簡歷

        2016-03-21 03:51:30
        辦公自動化 2016年3期
        關(guān)鍵詞:頁面數(shù)據(jù)庫

        非 貓

        ?

        招聘好幫手:用“蜂巢數(shù)據(jù)”篩選簡歷

        非貓

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

        Fei Mao

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

        一、前言

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

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

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

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

        二、正文

        “蜂巢數(shù)據(jù)”可以從官方網(wǎng)站上下載:http://cn.hdata.me/

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

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

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

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

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

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

        任務(wù)創(chuàng)建完成后,“蜂巢數(shù)據(jù)”會在工作區(qū)自動打開任務(wù)編輯窗口。我們將在任務(wù)編輯窗口里完成編寫采集腳本,定義數(shù)據(jù)字段等工作。

        任務(wù)編輯窗口的布局如圖3所示(為了擴大視圖,我關(guān)閉了導(dǎo)航面板和任務(wù)面板,只留下工作區(qū)):

        上面是腳本編輯區(qū)和瀏覽器,腳本編輯區(qū)用于編寫采集腳本,瀏覽器用于輔助腳本調(diào)試,當腳本運行時,瀏覽器會根據(jù)腳本的指令打開網(wǎng)頁。

        下面是各種輔助腳本編寫的工具面板和數(shù)據(jù)字段編輯區(qū):

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

        2、網(wǎng)頁審查面板可以查看瀏覽器中打開的網(wǎng)頁DOM結(jié)構(gòu)。

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

        4、數(shù)據(jù)字段面板用于對當前任務(wù)數(shù)據(jù)庫字段的編輯。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        用同樣的辦法,我們再提取性別,年齡,工作經(jīng)驗,學(xué)歷等數(shù)據(jù),然后我們通過“蜂巢數(shù)據(jù)”提供的print方法,把提取到的數(shù)據(jù)打印到輸出面板,如圖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("工作經(jīng)驗:" + exp.trim());

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

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

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

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

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

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

        現(xiàn)在運行腳本,我們可以在數(shù)據(jù)字段面板里看到保存的數(shù)據(jù),如圖8所示:

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

        我們把網(wǎng)頁拉到最下面,復(fù)制最后一條簡歷姓名的XPath,跟第一條對比下,看看有啥區(qū)別:

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

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

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

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

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

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

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

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

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

        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個頁面,因為再后面的簡歷大部分可能都是過時的,沒必要采集。具體采集幾頁,大家根據(jù)實際需求來設(shè)置就可以了。

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

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

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

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

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

        三、結(jié)尾

        通過本文大家應(yīng)該對“蜂巢數(shù)據(jù)”的使用方法已經(jīng)有所了解,只要會點JavaScript編程基礎(chǔ),就可以很方便地編寫腳本采集你所需要的內(nèi)容。

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

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

        猜你喜歡
        頁面數(shù)據(jù)庫
        微信群聊總是找不到,打開這個開關(guān)就好了
        大狗熊在睡覺
        刷新生活的頁面
        數(shù)據(jù)庫
        財經(jīng)(2017年15期)2017-07-03 22:40:49
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        數(shù)據(jù)庫
        財經(jīng)(2016年6期)2016-02-24 07:41:51
        同一Word文檔 縱橫頁面并存
        數(shù)據(jù)庫
        財經(jīng)(2010年20期)2010-10-19 01:48:32
        综合色就爱涩涩涩综合婷婷| 国产精品女同一区二区久| 午夜视频手机在线免费观看| 国产精品视频亚洲二区| 在线观看热码亚洲av每日更新| 97色伦图片97综合影院久久| 老肥熟女老女人野外免费区| 久久综合国产精品一区二区| 人妻少妇乱子伦无码视频专区| 亚洲欧美日韩国产综合一区二区| 高清一级淫片a级中文字幕| 亚洲av综合av国一区二区三区| 日本精品久久久久中文字幕| 国产亚洲情侣一区二区无| 日韩美女高潮流白浆视频在线观看| 国产久久久自拍视频在线观看| 亚洲成av人综合在线观看| 日日噜噜噜夜夜爽爽狠狠视频| 国产精品女同一区二区久久| 亚洲一区二区三区在线激情| 日产精品99久久久久久| 无码国产色欲xxxxx视频| 午夜国产精品久久久久| 久久精品国产9久久综合| 色综合av综合无码综合网站 | 国产一区二区三区视频网| 国产精品免费看久久久8| 妺妺窝人体色www在线直播| 国产超碰在线91观看| 亚洲国产美女精品久久| 亚洲人成无码www久久久| 青草蜜桃视频在线观看| 国产成人国产在线观看| 性色av一区二区三区四区久久| 日韩精品亚洲一区二区| 国产性生交xxxxx免费| 精品日韩欧美| 成年网站在线91九色| 夜夜添夜夜添夜夜摸夜夜摸| 日韩精品电影在线观看| 全程国语对白资源在线观看|