邢黎 吳茂念
摘要: 隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,面向垂直搜索引擎的主題爬蟲因其效率高,搜索結(jié)果完備可靠的優(yōu)勢(shì),成為專業(yè)化信息搜集的有效手段,這使得主題爬蟲在招聘信息的采集方面意義非凡。層次化的爬行策略和網(wǎng)頁(yè)內(nèi)容分析算法組成了主題爬蟲的基本結(jié)構(gòu)。僅僅搜集數(shù)據(jù)不夠直觀,對(duì)采集的數(shù)據(jù)分詞并加權(quán)并融入搜索引擎使招聘類主題爬蟲能快速搜集完備的,可靠的,準(zhǔn)確的招聘信息 ,并按網(wǎng)頁(yè)價(jià)值為信息排序,提高實(shí)用性和針對(duì)性,進(jìn)而在一定程度上緩解就業(yè)壓力。
關(guān)鍵詞:招聘信息;主題網(wǎng)絡(luò)爬蟲;搜索策略;搜索引擎;
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)25-0073-03
Design and Application of Recruitment Topic Crawler
XING Li, WU Mao-nian
(School of Information Engineering, Huzhou 311100,China)
Abstract: With the development of network technology, the theme crawler oriented to vertical search engine has become an effective means for the collection of specialized information because of its high efficiency and complete and reliable search results. This makes the subject crawler remarkable in the acquisition of recruitment information. Hierarchical crawling strategy and web content analysis algorithm constitute the basic structure of the theme crawler. Only collecting data is not intuitive, the collection of data segmentation and weighting and integration into the search engine can quickly collect complete, reliable, accurate recruitment information, and order information according to the value of the web, improve practicality and pertinence, and then alleviate employment pressure to a certain extent.
Key words:recruitment information: topic web crawler; fish search strategy; search engine
隨著就業(yè)壓力日漸增加,搜集并整理出完備的招聘信息可以有效緩解社會(huì)壓力,主題爬蟲在數(shù)據(jù)搜集方面的專業(yè)性完美地適應(yīng)了這種情況。設(shè)計(jì)高效的招聘信息主題爬蟲無(wú)疑具有相當(dāng)重要的研究?jī)r(jià)值。
1 就業(yè)形勢(shì)與搜索引擎
近年來(lái),高校畢業(yè)生就業(yè)難一直是重點(diǎn)話題,隨著教育普及程度和教育水平的提高,我國(guó)歷年大學(xué)畢業(yè)生人數(shù)正在以一個(gè)極其高的速度增長(zhǎng),每年都有幾百萬(wàn)的大學(xué)生走出校門,殘酷的競(jìng)爭(zhēng)下,找不到合適工作的人比比皆是。同時(shí)在經(jīng)濟(jì)全球化的影響下,決定經(jīng)濟(jì)穩(wěn)定的因素日益增多,國(guó)內(nèi)經(jīng)濟(jì)形勢(shì)嚴(yán)峻,經(jīng)濟(jì)增速下滑,嚴(yán)峻的經(jīng)濟(jì)條件淘汰了大量的企業(yè),同時(shí)也帶走了大量的工作崗位。又加重了廣大畢業(yè)生的就業(yè)壓力。招聘主題爬蟲旨在幫助求職者快速獲取各類招聘信息,進(jìn)而找到合適的工作,減輕社會(huì)壓力。
目前,市面上并不缺少有名的招聘網(wǎng)站,如51job,前程無(wú)憂等。但是也存在一些排名靠后或者零散的招聘網(wǎng)頁(yè),招聘主題爬蟲把招聘作為關(guān)鍵字在網(wǎng)絡(luò)中爬取分布廣泛的招聘信息,并加以整合,形成具有良好完備性,時(shí)效性,準(zhǔn)確性的招聘信息集合。
2主題網(wǎng)絡(luò)爬蟲的定義和工作原理
網(wǎng)絡(luò)爬蟲實(shí)質(zhì)上是一種自動(dòng)抓取網(wǎng)絡(luò)資源的腳本, 網(wǎng)絡(luò)爬蟲按照系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)技術(shù),大致可以分為以下幾種類型:通用網(wǎng)絡(luò)爬蟲(GeneralPurposeWebCrawler)、聚焦網(wǎng)絡(luò)爬蟲(FocusedWebCrawler)、增量式網(wǎng)絡(luò)爬蟲(IncrementalWebCrawler)、深層網(wǎng)絡(luò)爬蟲(DeepWebCrawler)。
聚焦型網(wǎng)絡(luò)爬蟲又稱主題爬蟲,這種爬蟲比起傳統(tǒng)的搜索引擎在信息搜集上具有明顯的優(yōu)勢(shì)。傳統(tǒng)搜索引擎往往先大范圍抓取萬(wàn)維網(wǎng)上的信息,然后為這些信息建立索引并存入數(shù)據(jù)庫(kù),最后通過(guò)關(guān)鍵字檢索完成數(shù)據(jù)查詢。這種方式對(duì)硬件的需求很高,搜集大量數(shù)據(jù)需要很大的存儲(chǔ)空間,使得系統(tǒng)的搜索功能在不是很精準(zhǔn)的同時(shí)還要花費(fèi)大量的時(shí)間,導(dǎo)致資源的時(shí)效性降低。而主題爬蟲只關(guān)注與主題相關(guān)的網(wǎng)絡(luò)資源能夠增加爬取速度,節(jié)省帶寬,減輕存儲(chǔ)壓力,縮短數(shù)據(jù)更新周期,進(jìn)而保證了相當(dāng)不錯(cuò)的時(shí)效性,實(shí)用性,獲得的鏈接一般不會(huì)是過(guò)期的。
一個(gè)完整的主題爬蟲包括分類模塊,提取模塊,爬取模塊三部分。分類模塊又稱分類器,負(fù)責(zé)利用網(wǎng)頁(yè)的各項(xiàng)參數(shù)計(jì)算出網(wǎng)頁(yè)的切題度。提取模塊用于規(guī)定抓取頁(yè)面的順序,體現(xiàn)頁(yè)面抓取的方向。爬取模塊是實(shí)施網(wǎng)頁(yè)抓取的主體,前二者的作用是規(guī)范爬取規(guī)則使爬取模塊能夠下載符合主題的網(wǎng)頁(yè)。
主題爬蟲在工作的過(guò)程中,一般會(huì)把與主題相關(guān)的網(wǎng)頁(yè)整合起來(lái)作為種子網(wǎng)頁(yè)集,也可以用百度等大型搜索引擎搜索關(guān)鍵字獲取抓取種子網(wǎng)頁(yè)集。
然后從種子網(wǎng)頁(yè)開始,將待處理的鏈接逐個(gè)入隊(duì)并確定優(yōu)先級(jí),盡可能下載跟主題相關(guān)的網(wǎng)頁(yè),減少無(wú)關(guān)網(wǎng)頁(yè)的下載帶來(lái)的消耗,進(jìn)而提高整體的工作效率。主題爬蟲在獲取資源的過(guò)程中需要進(jìn)行數(shù)據(jù)解析,因此會(huì)產(chǎn)生了大量的等待時(shí)間,普通單發(fā)操作的主題爬蟲會(huì)在這方面浪費(fèi)大量時(shí)間。而采用多進(jìn)程,多線程或者協(xié)程的并發(fā)主題爬蟲能夠大大提高工作效率。
2.1爬行策略
主題爬蟲對(duì)待網(wǎng)頁(yè)不像普通爬蟲“來(lái)者不拒”,在普通的爬行策略的基礎(chǔ)上,主題爬蟲引入分詞系統(tǒng),詞向量模型,web深度挖掘等技術(shù)幫助建立體系的主題識(shí)別能力,并改良爬行策略提高對(duì)主題相關(guān)性的區(qū)分度,快速搜索貼近主題的網(wǎng)頁(yè)。
魚群搜索算法(fish search)[1]是一種基于文字內(nèi)容的啟發(fā)式算法,這種方法模擬一個(gè)魚群通過(guò)覓食不斷壯大,最后由于得不到食物而消亡的過(guò)程。映射到網(wǎng)絡(luò)爬蟲中,種子網(wǎng)頁(yè)集就是最開始的魚群,整個(gè)萬(wàn)維網(wǎng)就相當(dāng)于是充滿食物的海洋,這些魚必須能夠從中找到食物才能繁衍下一代。直到再也找不到食物,魚群就會(huì)滅亡。
這種算法要求魚群至少要能粗略的判斷網(wǎng)頁(yè)是否切題,即在主題相關(guān)性判斷上要有科學(xué)的方法。 DeBra PME等人提出通過(guò)比較已下載網(wǎng)頁(yè)文字內(nèi)容與主題是否匹配的二元分類方法,如果網(wǎng)頁(yè)內(nèi)容與關(guān)鍵字匹配則相關(guān)性標(biāo)記為1,否則標(biāo)記為0。
鯊魚搜索策略(shark search)算法在魚群搜索策略(fish search)的基礎(chǔ)上引入相似度度量方法,取值為[0,1];這種算法在計(jì)量頁(yè)面內(nèi)容主題相關(guān)性的基礎(chǔ)上把錨文本內(nèi)容,鏈接內(nèi)容及父頁(yè)面( 指向包含鏈接頁(yè)面的 Web頁(yè)面)三個(gè)參數(shù)的主題相關(guān)性都拿來(lái)做待下載網(wǎng)頁(yè)主題相關(guān)性的計(jì)量標(biāo)準(zhǔn)。把那些不符合條件的超鏈接從等待隊(duì)列中刪除。
Menczer F等提出的“最優(yōu)最先”(best first)搜索策略,該算法在鯊魚算法的基礎(chǔ)上計(jì)算向量空間相關(guān)性,把相關(guān)性最好的網(wǎng)頁(yè)放入下載隊(duì)列,由于這種算法的于貪婪性,實(shí)際應(yīng)用中如果遇到存在于主題相關(guān)度低的網(wǎng)頁(yè)之后相關(guān)度高的網(wǎng)頁(yè),這些網(wǎng)頁(yè)將會(huì)被遺漏。
基于文字內(nèi)容的啟發(fā)式方法只考慮頁(yè)面文字內(nèi)容,忽視了超鏈接圖的影響。而基于超鏈接圖的評(píng)價(jià)方法,如PageRank算法和HITS算法則是通過(guò)分析超鏈接圖,按照超鏈接的點(diǎn)擊次數(shù)定義超鏈接的權(quán)威度,進(jìn)而考慮是否下載頁(yè)面,HITS算法同時(shí)也考慮文本內(nèi)容的權(quán)威度,但是在效果上并沒有明顯強(qiáng)于PageRank算法。有效的主題爬蟲算法除了傳統(tǒng)的啟發(fā)式方法還有與神經(jīng)網(wǎng)絡(luò)結(jié)合的經(jīng)驗(yàn)學(xué)習(xí)方法,基于語(yǔ)義和概念的分析方法等。
2.2一般來(lái)說(shuō),要活的與主題相關(guān)的網(wǎng)頁(yè)有以下四種思路:
1)如果搜索主題的相關(guān)網(wǎng)頁(yè)不多,比如主題為某個(gè)網(wǎng)站數(shù)量有限的行業(yè),進(jìn)行行業(yè)搜索通常只需根據(jù)這些網(wǎng)站進(jìn)行定制抓取。一般這種網(wǎng)站網(wǎng)頁(yè)結(jié)構(gòu)大部分都相同,所以只要分析好網(wǎng)頁(yè)源代碼就能非??焖俚孬@取整個(gè)網(wǎng)站中有用的信息。
2)網(wǎng)頁(yè)標(biāo)題、正文、超鏈接中往往包含與網(wǎng)頁(yè)內(nèi)容有關(guān)聯(lián)的關(guān)鍵詞,這些關(guān)鍵詞被稱為導(dǎo)向詞,通過(guò)對(duì)文本進(jìn)行分詞處理列出詞根,給不同的詞根附加不同的權(quán)重,達(dá)到按優(yōu)先級(jí)訪問(wèn)網(wǎng)頁(yè)的目的。
3)這種算法需要先下載網(wǎng)頁(yè)才能對(duì)URL進(jìn)行評(píng)分并且進(jìn)入等待隊(duì)列,等下一次處理到這個(gè)URL時(shí)還需要再次下載頁(yè)面,存在嚴(yán)重的資源浪費(fèi)。這種情況下可以采取按經(jīng)驗(yàn)設(shè)定閾值的方法限制對(duì)評(píng)分低的網(wǎng)頁(yè)的下載,并且先不提取達(dá)到閾值的頁(yè)面的URL,等到擴(kuò)展到的時(shí)候再進(jìn)行評(píng)分。對(duì)網(wǎng)頁(yè)鏈接進(jìn)行評(píng)分(這種方法只是根據(jù)當(dāng)前爬蟲爬取的信息對(duì)當(dāng)前的URL進(jìn)行評(píng)分,而不涉及當(dāng)前網(wǎng)頁(yè)的內(nèi)容)也可以 對(duì)鏈接描述文本進(jìn)行分析。
3 招聘信息主題網(wǎng)絡(luò)爬蟲的前景和研究方向
3.1前景
就業(yè)是社會(huì)發(fā)展的一大難題,隨著人口基數(shù)的擴(kuò)增,高等教育的普化。將會(huì)有更多的畢業(yè)生面臨“失業(yè)”的風(fēng)險(xiǎn),在這樣的社會(huì)條件下,一個(gè)專門服務(wù)于學(xué)生群體的招聘信息網(wǎng)絡(luò)爬蟲或許可以作為一種幫助調(diào)節(jié)就業(yè)的網(wǎng)絡(luò)手段,產(chǎn)生比招聘網(wǎng)站更加積極的影響。
3.2主題爬蟲的研究方向
主題爬蟲的作為一種信息采集的手段,信息采集的效率是評(píng)判一個(gè)爬蟲好壞的標(biāo)準(zhǔn)。簡(jiǎn)單的爬蟲只能抓取靜態(tài)網(wǎng)頁(yè),無(wú)法應(yīng)對(duì)一些數(shù)據(jù)量巨大的動(dòng)態(tài)網(wǎng)站,比如論壇網(wǎng)站,也無(wú)法抓取需要注冊(cè)登錄才能訪問(wèn)的網(wǎng)頁(yè)。因此爬蟲必須增強(qiáng)對(duì)不同類型網(wǎng)站的適應(yīng)性以及爬蟲框架的伸展性,進(jìn)而靈活的應(yīng)對(duì)各種網(wǎng)站。要提高主題爬蟲的爬取效率,重點(diǎn)在于提高查全率和查準(zhǔn)率,這方面學(xué)要等待算法的提高。
實(shí)際上,為了防止爬蟲的高頻訪問(wèn)拖垮服務(wù)器,很多網(wǎng)站都有針對(duì)爬蟲的反爬蟲機(jī)制,能夠阻礙那些繞不開檢查系統(tǒng)的爬蟲程序。然而這些保護(hù)措施只針對(duì)個(gè)別爬蟲的運(yùn)行機(jī)制,只要改進(jìn)運(yùn)行方式就能突破封鎖,比如偽裝成瀏覽器,使用不能被檢測(cè)出的代理服務(wù)器開更多IP,每個(gè)IP下運(yùn)行多個(gè)爬蟲程序,實(shí)現(xiàn)爬蟲的高并發(fā)。
一個(gè)信息爆炸的時(shí)代,也是網(wǎng)絡(luò)爬蟲展現(xiàn)價(jià)值的時(shí)代。網(wǎng)絡(luò)爬蟲高效的信息收集能力確實(shí)推動(dòng)了很多行業(yè)的發(fā)展,比如獲取用戶瀏覽記錄進(jìn)行信息推送尤其是主題爬蟲,。但是爬蟲的運(yùn)行方式導(dǎo)致它在很多方面都存在局限性。就拿主題爬蟲為例,爬取門戶網(wǎng)站時(shí),往往需要根據(jù)經(jīng)驗(yàn)選用爬行算法,在萬(wàn)維網(wǎng)上大范圍爬取信息是很多時(shí)候采用的算法都不太適合一些網(wǎng)頁(yè),導(dǎo)致查全率和查準(zhǔn)率下降。如果主題爬蟲擁有一套自適應(yīng)的法則使它遇到不同的網(wǎng)頁(yè)時(shí)能夠智能的選取最合適的算法,將會(huì)大大提高系統(tǒng)效率。另一方面,主題爬蟲開始工作需要一組URL種子集,在實(shí)際應(yīng)用中,構(gòu)建URL種子集往往需要人工介入來(lái)保證準(zhǔn)確性,增加了不少人力資源的消耗,如何自動(dòng)高效的構(gòu)建URL種子集是主題爬蟲需要克服的又一難關(guān)。除此之外,爬蟲應(yīng)該具備一定的安全意識(shí),在高頻訪問(wèn)的同時(shí)檢測(cè)服務(wù)器狀態(tài),如果服務(wù)器非常繁忙應(yīng)該適當(dāng)降低訪問(wèn)頻率,防止網(wǎng)站后臺(tái)崩潰。
4 招聘信息主題爬蟲的設(shè)計(jì)
招聘主題爬蟲應(yīng)該包括爬蟲(crawler)和查詢(search)兩部分,爬蟲部分按照要求抓取與招聘相關(guān)的網(wǎng)頁(yè)存入數(shù)據(jù)庫(kù)并建立索引,查詢部分匹配索引和用戶輸入的關(guān)鍵字從數(shù)據(jù)庫(kù)中拿出符合條件的結(jié)果。主題爬蟲URL處理流程如圖3-1.
4.1工作流程
1)設(shè)定爬取深度,建立數(shù)據(jù)庫(kù)(DB),先存儲(chǔ)初始網(wǎng)頁(yè)鏈接和索引(種子網(wǎng)頁(yè)集),筆者選用51job和前程無(wú)憂的湖州地區(qū)招聘頁(yè)面。
如果數(shù)據(jù)量不是很大使用Python的Models庫(kù)更加方便,這個(gè)庫(kù)的優(yōu)勢(shì)在于它將每一條數(shù)據(jù)都以近似類的形式存儲(chǔ),操作起來(lái)更加方便。
2)爬蟲從數(shù)據(jù)庫(kù)中拿出鏈接開始爬取種子網(wǎng)頁(yè),接下來(lái)主題爬蟲需要根據(jù)算法計(jì)算網(wǎng)頁(yè)相關(guān)性并將符合條件的超鏈接存入數(shù)據(jù)庫(kù)且建立索引。普通爬蟲無(wú)條件抓取下一層網(wǎng)頁(yè)。筆者選用的是魚群搜索策略,因?yàn)榈谝慌W(wǎng)頁(yè)為種子網(wǎng)頁(yè),所以相關(guān)性默認(rèn)為1,下載全部子網(wǎng)頁(yè)。
3)將數(shù)據(jù)庫(kù)中還未抓取過(guò)得網(wǎng)頁(yè)鏈接入隊(duì),利用魚群搜索策略如果當(dāng)前網(wǎng)頁(yè)的內(nèi)容與主題不相關(guān),則相關(guān)性標(biāo)記為0,當(dāng)前網(wǎng)頁(yè)的子網(wǎng)頁(yè)全部死亡,當(dāng)前網(wǎng)頁(yè)鏈接出隊(duì)。
4)反復(fù)執(zhí)行3操作,直到子網(wǎng)頁(yè)全部死亡或者達(dá)到要求的爬取深度。
5)制作一個(gè)精簡(jiǎn)的網(wǎng)頁(yè)作為爬蟲界面,使用Python 的Django 庫(kù)和數(shù)據(jù)庫(kù)查詢語(yǔ)句完成招聘信息的查詢和顯示。
5結(jié)束語(yǔ)
本文介紹了當(dāng)前的就業(yè)形勢(shì)與招聘類主題爬蟲的優(yōu)勢(shì),簡(jiǎn)單說(shuō)明了主題網(wǎng)絡(luò)爬蟲的工作原理和簡(jiǎn)單搜索策略,列出了招聘信息主題網(wǎng)絡(luò)爬蟲的開發(fā)步驟。最后在此基礎(chǔ)上提出了對(duì)未來(lái)主題網(wǎng)絡(luò)爬蟲發(fā)展的看法。主題爬蟲的特點(diǎn)是信息搜索的專業(yè)化,與人才招聘結(jié)合可以成為促進(jìn)就業(yè)的一款非常不錯(cuò)的工具。
主題爬蟲作為一種快速專業(yè)的信息搜集手段,它在數(shù)據(jù)存儲(chǔ),相關(guān)度判別和運(yùn)行速度上還有極大的發(fā)展空間。近年來(lái),人工智能的快速發(fā)展,未來(lái)很可能誕生大大提高主題網(wǎng)絡(luò)爬蟲精準(zhǔn)性的自動(dòng)學(xué)習(xí)算法,從而能夠設(shè)計(jì)一款非常適合學(xué)生擇業(yè)的主題爬蟲,在一定程度上緩解就業(yè)壓力。
參考文獻(xiàn):
[1] 于娟,劉強(qiáng).主題網(wǎng)絡(luò)爬蟲研究綜述[J].計(jì)算機(jī)工程與科學(xué),2015,37(2):231-237.
[2] 李歡.面向工程技術(shù)的主題爬蟲的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2016.
[3] 劉清.主題網(wǎng)絡(luò)爬蟲抓取策略的研究[J].科技礦場(chǎng),2017(4):43-46
[4] 孟竹.詞向量語(yǔ)義模型研究及在主題爬蟲系統(tǒng)中的運(yùn)用[D].北京:中國(guó)地質(zhì)大學(xué),2017.
[5] Yajun Du, Wenjun Liu, Xianjing Lv, et al. An improved focused crawler based on Semantic Similarity Vector Spac[J]. Applied Soft Computing,2015:392-407.
[6] 程元堃,廖聞劍,程光.詞向量聚類加權(quán)Shark-Search的主題爬蟲策略研究[J]. 計(jì)算機(jī)與數(shù)字工程,2018(1):144-148.
[7] 魏寧洲. 面向垂直搜索的主題爬蟲爬行策略的研究與實(shí)現(xiàn)[D]. 北京:北京郵電大學(xué),2015.
[8] 陳云,鄭東亮. 2016年就業(yè)形勢(shì)分析及發(fā)展趨勢(shì)[J]. 中國(guó)勞動(dòng),2017(2):4-12.
[9] Punam Bedi,Anjali Thukral, Hema Banati,et al. A Multi-Threaded Semantic Focused Crawler[J].計(jì)算機(jī)科學(xué)技術(shù)學(xué)報(bào):英文版,2012(6):1233-1242.
【通聯(lián)編輯:王力】