国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于網(wǎng)絡爬蟲的學生就業(yè)信息挖掘與推送研究

2019-09-24 02:00陳康琛劉進進陳興雷
電腦知識與技術(shù) 2019年19期
關(guān)鍵詞:網(wǎng)絡爬蟲

陳康琛 劉進進 陳興雷

摘要:為了解決大學生獲取就業(yè)信息滯后、時間成本高昂以及與用人組織間信息不對稱的問題,提出運用網(wǎng)絡爬蟲信息技術(shù)和郵件推送技術(shù)的設計思想,以自動化控制減少人工操作為實現(xiàn)途徑,開發(fā)和研究學生就業(yè)信息挖掘與推送系統(tǒng)。系統(tǒng)包括輸入加載模塊,信息抓取模塊,結(jié)果輸出模塊和郵件推送模塊。以Python計算機設計語言為基礎(chǔ),進行代碼編譯,實現(xiàn)以全國大學生就業(yè)公共服務立體化平臺(新職網(wǎng))為自動爬取對象,對網(wǎng)站工作日當天信息JSON數(shù)據(jù)源下載存儲,信息抓取模塊與郵件推送模塊相配合,在索引JSON數(shù)據(jù)庫進行深度挖掘后,自動將輸出匯總結(jié)果推送至郵箱。系統(tǒng)操作簡單,高效可靠,在畢業(yè)季中有較大推廣應用可能。

關(guān)鍵詞:python;網(wǎng)絡爬蟲;就業(yè)信息;郵件推送

中圖分類號:TP391? ? ? ? 文獻標識碼:A

文章編號:1009-3044(2019)19-0006-03

Abstract: In order to solve the problems of inadequate access to employment information, high time cost and asymmetric information between college students and employers, this paper puts forward the design idea of using web crawler information and email push technologies to develop and study a mining and pushing system of student employment information, so that the manual operation can be reduced through an automatic control. The system includes input loading module, information capture module, result output module, and email push module. The code is compiled on the basis of Python computer design language. Taking NCSS (New Career Service Site for Students) as the automatic crawler object, it downloads and saves the daily information JSON data source from the website on workdays. Combined with information capture module and email push module, the output summary results can be automatically pushed to the mailbox after in-depth mining of index JSON database. The system is efficient, reliable and easy to use, which may be widely used in the graduation season.

Key words: python; web crawler; employment information; email push

1 引言

近年來,大學生畢業(yè)人數(shù)逐年增長,2019年全國高校畢業(yè)生人數(shù)預計834萬[1],再創(chuàng)歷史新高。大學生就業(yè)難已成為社會關(guān)切的熱點問題之一。面對最難就業(yè)季和就業(yè)崗位信息的動態(tài)更新,大學畢業(yè)生每天需要進行煩瑣的人工查詢和篩選操作,耗費大量的時間成本,同時也無法及時得到大量有效的招聘信息,更有招聘信息檢索不當和數(shù)據(jù)挖掘深度不夠的情況發(fā)生,使其與心儀的就業(yè)崗位失之交臂。目前在我國網(wǎng)絡招聘市場中,已呈現(xiàn)出智聯(lián)招聘、前程無憂和中華英才網(wǎng)這類綜合性招聘網(wǎng)站領(lǐng)先,其他地方性、行業(yè)性、搜索型和社交型等多種網(wǎng)站并存發(fā)展的多元格局[2]。雖然就業(yè)信息平臺已搭建完成,但都還需大學生逐個進行人工查詢、篩選的操作,耗時耗力,從用戶體驗來說,不夠自動化。因此,本文設計一款就業(yè)信息挖掘與推送系統(tǒng),對保證就業(yè)信息時效性,使大學生自動化高效定制就業(yè)信息具有重要意義,為全國大學生就業(yè)信息獲取提供了新的方法和途徑。

2 項目相關(guān)技術(shù)和設計

2.1 Python

Python是一種簡單易學、功能強大的計算機程序設計語言, 它有高效率的高層數(shù)據(jù)結(jié)構(gòu), 簡單而有效地實現(xiàn)面向?qū)ο缶幊獭ython簡潔的語法和對動態(tài)輸入的支持,讓人更加容易閱讀、調(diào)試和擴展,再加上其高度集成了解釋性、交互性、面向?qū)ο笮院拓S富的可擴展性等特點[3],可根據(jù)情況,導入多種模塊,大量的第三方函數(shù)庫對其進行了支持,使得Python語言在爬蟲和大數(shù)據(jù)處理分析方面具有明顯優(yōu)勢,特別適用于快速的應用開發(fā),也成為當前程序設計的熱門語言之一。

本項目,運用python中的os, requests, BeautifulSoup模塊編寫自定義函數(shù)CXRD,實現(xiàn)新職網(wǎng)JSON源文件的下載;requests, lxml, BeautifulSoup模塊編寫自定義函數(shù)XJCX,實現(xiàn)JSON數(shù)據(jù)源的解析;smtplib, MIMEText模塊編寫自定義函數(shù)sendmail,實現(xiàn)電子郵件的自動推送。通過以上自定義函數(shù)的調(diào)用,再結(jié)合re, time, tkinter, tkinter.filedialog, tkinter.messagebox模塊和正則表達式對大學生就業(yè)信息挖掘與推送軟件進行編譯,便能夠達成就業(yè)信息網(wǎng)頁自動獲取、崗位詳情信息主動解析和匯總結(jié)果電子郵件推送等目標。

2.2 網(wǎng)絡爬蟲

網(wǎng)絡爬蟲(Web Crawler),又稱網(wǎng)絡蜘蛛(Web Spider)或Web信息采集器,是一個自動下載網(wǎng)頁的計算機程序或自動化腳本,是搜索引擎的重要組成部分[4]。網(wǎng)絡爬蟲的基本實現(xiàn)原理及過程:通過互聯(lián)網(wǎng)獲取網(wǎng)頁初始URL鏈接,將初始網(wǎng)頁存儲至數(shù)據(jù)庫,并對初始網(wǎng)頁中出現(xiàn)的新URL鏈接進行爬取,始終重復上述過程,直至滿足設定的停止條件。若無停止條件,將直到無法獲取新的URL鏈接為止。以此實現(xiàn)對網(wǎng)頁數(shù)據(jù)的遍歷、挖掘和保存。本項目即利用Python中對網(wǎng)頁內(nèi)容的自動爬取功能,完成對網(wǎng)站數(shù)據(jù)的收集與更新。

2.3 正則表達式

JSON指的是類似JavaScript對象的一種數(shù)據(jù)格式,這種數(shù)據(jù)格式是服務器和客戶端數(shù)據(jù)交互的媒介。在對網(wǎng)站JSON數(shù)據(jù)源下載存儲后,基于正則表達式進行匹配,對JSON文本數(shù)據(jù)進行數(shù)據(jù)清洗,以極其簡單的操作方式從煩瑣雜亂的字符串中提取我們想要的特定部分。例如:本項目中,通過recNames=re.findall('.recName.*?(?=,)',line)的方式進行信息提取,實現(xiàn)對“,”前含有“recName”的字符串的自動匹配并輸出內(nèi)容。其中, '.recName.*?(?=,)'即為正則表達式。

2.4 網(wǎng)站Robots協(xié)議

Robots.txt是存放于網(wǎng)站目錄下的ASCII編碼的文本文件,它通常告訴搜索引擎蜘蛛程序在此網(wǎng)站中可以抓取和禁止抓取的內(nèi)容[5],直接標明爬蟲服務程序在其網(wǎng)站上的許可抓取信息范圍,此協(xié)議的存在是為了保護網(wǎng)站數(shù)據(jù)和敏感信息。

大學生就業(yè)信息挖掘與推送系統(tǒng)爬取信息源采用新職網(wǎng)數(shù)據(jù)源,經(jīng)過瀏覽器訪問如下網(wǎng)址http://www.ncss.org.cn/robots.txt,此頁面顯示結(jié)果為

“404 Not Found”即未設置robots.txt,因此,在未經(jīng)新職網(wǎng)授權(quán)的情況下,網(wǎng)絡爬蟲可直接對其數(shù)據(jù)源的所有信息內(nèi)容進行抓取,即其數(shù)據(jù)源向社會開放。

2.5 系統(tǒng)運行設計

要對有效的就業(yè)招聘信息進行搜集,首先需要確定就業(yè)信息發(fā)布于哪些網(wǎng)站上。本項目以新職網(wǎng)(http://ncss.org.cn)為例,對專業(yè)就業(yè)信息進行獲取,人為設定專業(yè)對應的篩選關(guān)鍵詞。在對目標網(wǎng)址和關(guān)鍵詞確立完成后,便是對其URL所對應的網(wǎng)頁詳情內(nèi)容進行爬取,找出含有以上篩選關(guān)鍵詞的信息。完成信息抓取后,設定以方便閱讀的格式進行本地保存,以一條信息對應一條鏈接輸出為宜。最終,將爬取匯總結(jié)果通過QQ郵箱一鍵推送。

3 項目系統(tǒng)分析及實現(xiàn)

3.1 輸入加載模塊

首先導入Beautiful Soup模塊,它是一個具有強大功能的工具箱,內(nèi)置python支持的大量函數(shù),可實現(xiàn)lxml網(wǎng)頁解析、文檔樹的遍歷和搜索以及CSS選擇等功能,為本次設計的系統(tǒng)python代碼進行靈活調(diào)用函數(shù)提供了較大幫助。

隨后對專業(yè)對應的篩選關(guān)鍵詞進行導入,利用tkinter模塊中的filedialog和messagebox標準對話框模塊,生成文件選擇對話框,獲取專業(yè)檢索詞的文件路徑,運用open(,[r,w,a,b])函數(shù)讀取檢索詞,其中r:讀操作;w:寫操作;a:添加操作,b:二進制存取操作,此模塊采用r只讀操作即可完成設計需求,采用文件對話框txt文本導入設計是因為可直接導入數(shù)個專業(yè)檢索詞,避免在代碼運行過程中逐個輸入文本情況的發(fā)生。爬蟲腳本內(nèi)容如下:

在對新職網(wǎng)JSON數(shù)據(jù)源下載本地存儲完成后,利用re模塊構(gòu)建設置正則表達式,并基于正則表達式進行匹配,對獲取到的JSON數(shù)據(jù)進行篩選和匹配,得到符合條件的“recName”, “recId”, “jobTitle”, “jobId”數(shù)據(jù)內(nèi)容,為信息抓取模塊中網(wǎng)頁詳情檢索和結(jié)果輸出正常創(chuàng)造前提條件。

3.2 信息抓取模塊

在輸入加載模塊運行完成后,便需要運用崗位URL查詢信息,進行網(wǎng)頁詳情頁面的檢索詞檢索,為了防止因網(wǎng)絡波動或服務器不穩(wěn)定造成連接失敗的問題,設定服務器重連次數(shù)“3”,運用BeautifulSoup和lxml模塊對新職網(wǎng)職位網(wǎng)頁進行解析,解析結(jié)果為新職網(wǎng)網(wǎng)站html代碼,通過對整個新職網(wǎng)網(wǎng)頁html代碼的分析總結(jié),得出使用BeautifulSoup中的方法find_all查詢匹配li標簽中的職業(yè)名稱和div標簽中的招聘企業(yè)所處地域,之后,若職位詳情頁面中含有檢索詞字段即返回該頁面的URL,否則,直接返回空值。如下所示:

3.3 結(jié)果輸出模塊

在信息抓取模塊運行完成后,便是將檢索篩選結(jié)果進行本地保存,將會以"jobTitle":"**"(職位名稱)、"recName ":"**"(企業(yè)名稱)、"address":**(企業(yè)地址)、URL鏈接(網(wǎng)頁詳情)的形式保存為txt文本文檔,直接將職位名稱、招聘企業(yè)名稱、企業(yè)所在省市和職位詳情鏈接進行顯示,方便推送郵件時收件方進行閱讀查看,至此,檢索結(jié)果輸出完成。

3.4 郵件推送模塊

電子郵件進行一鍵推送功能的實現(xiàn)采取自定義發(fā)送電子郵件函數(shù)的方法,導入smtplib, MIMEText模塊,該模塊簡單定義了一個SMTP客戶端,對SMTP協(xié)議(簡單郵件傳輸協(xié)議)進行簡單的封裝,可用于向任何互聯(lián)網(wǎng)機器發(fā)送使用SMTP協(xié)議的郵件,將郵件服務器及短號、發(fā)送方郵箱和郵箱授權(quán)碼等信息進行輸入編譯后,依然按照文件對話框的方式導入收件方郵箱,在有需要的情況下進行輸出結(jié)果的批量用戶一鍵發(fā)送,方便快捷。實現(xiàn)代碼如下:

4 項目系統(tǒng)運行試驗

在完成大學生就業(yè)信息挖掘與推送系統(tǒng)代碼編譯后,需要對整個代碼及設計模塊的運行進行試驗驗證, 測試整個系統(tǒng)的可靠性和高效性,所得試驗具體參數(shù)記錄結(jié)果如下表所示:

猜你喜歡
網(wǎng)絡爬蟲
煉鐵廠鐵量網(wǎng)頁數(shù)據(jù)獲取系統(tǒng)的設計與實現(xiàn)
仪征市| 如皋市| 牟定县| 桦川县| 无锡市| 盐池县| 鲁甸县| 内乡县| 涞源县| 内江市| 张北县| 武穴市| 龙里县| 秦安县| 宝清县| 那坡县| 彰化县| 东山县| 石台县| 三门县| 汉寿县| 泸水县| 泽库县| 沙雅县| 九寨沟县| 延庆县| 靖边县| 蓝山县| 白山市| 沙雅县| 西丰县| 甘泉县| 仙居县| 嘉黎县| 敖汉旗| 栾川县| 施秉县| 融水| 奎屯市| 行唐县| 张家川|