• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Python的就業(yè)崗位數(shù)據(jù)獲取與預(yù)處理

      2019-06-01 10:06林長謀黃瑋
      電腦知識(shí)與技術(shù) 2019年12期
      關(guān)鍵詞:網(wǎng)絡(luò)爬蟲數(shù)據(jù)分析

      林長謀 黃瑋

      摘要:互聯(lián)網(wǎng)數(shù)據(jù)獲取及分析是當(dāng)前數(shù)據(jù)科學(xué)的一個(gè)重要部分。該文針對互聯(lián)網(wǎng)中就業(yè)崗位數(shù)據(jù)獲取與分析的過程基于Python構(gòu)建了網(wǎng)絡(luò)爬蟲。并在通爬蟲獲取網(wǎng)絡(luò)數(shù)據(jù)的基礎(chǔ)上,對所獲得的就業(yè)崗位數(shù)據(jù)進(jìn)行預(yù)處理,最終可到供挖掘的數(shù)據(jù)。

      關(guān)鍵詞:Python;網(wǎng)絡(luò)爬蟲;數(shù)據(jù)分析

      中圖分類號:TP393 文獻(xiàn)標(biāo)識(shí)碼:A

      文章編號:1009-3044(2019)12-0006-02

      開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):

      1 背景

      隨著信息技術(shù)的發(fā)展,大數(shù)據(jù)越來越成為熱門的話題[1]。使用大數(shù)據(jù)技術(shù)對就業(yè)崗位市場進(jìn)行數(shù)據(jù)的分析對于學(xué)生職業(yè)生涯的規(guī)劃有較強(qiáng)的現(xiàn)實(shí)意義。而就業(yè)崗位的相關(guān)數(shù)據(jù)動(dòng)態(tài)連續(xù)的創(chuàng)建于不同的人才市場,受數(shù)量多、分布廣、格式不統(tǒng)一等因素的影響,不易采用人工進(jìn)行數(shù)據(jù)的獲取。因此也就更不利于相關(guān)信息的分析。為解決這一問題,本研究先針對性的進(jìn)行網(wǎng)絡(luò)爬蟲[2]的設(shè)計(jì),再基于分詞技術(shù)[3]和TD-FID算法進(jìn)行關(guān)鍵詞的提取的統(tǒng)計(jì)。

      2 網(wǎng)絡(luò)爬蟲的關(guān)鍵技術(shù)

      爬蟲是互聯(lián)網(wǎng)時(shí)代用于獲取主題內(nèi)容的主流工具之一。其可從不同的站點(diǎn)獲取預(yù)先設(shè)置好的主題內(nèi)容。在本研究中使用Python,并調(diào)用BeautifulSoup、Requests等庫及數(shù)據(jù)庫技術(shù),進(jìn)行爬蟲的構(gòu)建。構(gòu)建爬蟲涉及的技術(shù)如下:

      2.1 HTTP請求與響應(yīng)與 URL

      爬蟲的工作原理基于http協(xié)議中的請求與響應(yīng)機(jī)制[4]。在瀏覽器瀏覽某個(gè)網(wǎng)頁時(shí),需要使用HTTP協(xié)議將URL提交給服務(wù)器。服務(wù)器收到URL后根據(jù)URL中攜帶的信息處理將對方所請求的資源回傳給瀏覽器端。

      爬蟲在運(yùn)行時(shí)模擬瀏覽器與服務(wù)器的運(yùn)行特征,模擬瀏覽器向服務(wù)器發(fā)送URL請求,接收對方的回復(fù),并最終將接收到的數(shù)據(jù)轉(zhuǎn)換成要保留的數(shù)據(jù)。由于互聯(lián)網(wǎng)網(wǎng)頁錯(cuò)綜復(fù)雜,一次的請求與回復(fù)無法獲取批量數(shù)據(jù),因此需要對爬蟲的流程進(jìn)行規(guī)劃設(shè)計(jì),使之適應(yīng)多頁面跨頁面的情況。

      2.2 超文本語言

      超文本語言[5]也稱為HTML(Hypertext Markup Language),在該語言中規(guī)定了相關(guān)事項(xiàng)的標(biāo)簽,并采用配對標(biāo)記的形式進(jìn)行使用。例如為了表示一個(gè)表格,可以使用

      ……
      進(jìn)行表達(dá)。瀏覽器接收到服務(wù)器的回復(fù)內(nèi)容即為采用HTML表達(dá)后的結(jié)果。其網(wǎng)頁源碼是一系列HTML代碼,里面包含了一系列標(biāo)簽。在進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)獲取前,需要對目標(biāo)網(wǎng)站的數(shù)據(jù)特征進(jìn)行分析,此時(shí)就需要查看網(wǎng)頁的HTML格式。

      圖2展示了從51Job上相關(guān)招聘信息鏈接對應(yīng)的HTML片段??梢钥闯?a>標(biāo)簽的 href屬性值是一個(gè)URL的鏈接,點(diǎn)擊該鏈接后即可獲得該職位的詳細(xì)信息。

      2.3 Web信息抽取

      在獲得目標(biāo)網(wǎng)頁的URL地址,通過請求可得到該網(wǎng)頁內(nèi)容。由于網(wǎng)頁是HTML格式,中間嵌入了許多對于信息抽取不必要的標(biāo)記。因此需要對數(shù)據(jù)進(jìn)行一定的抽取。在具體Web頁的抽取中,要根據(jù)頁面的結(jié)構(gòu)特點(diǎn)定位要抽取的信息。具體實(shí)踐中,通過正則表達(dá)式可以高效的抽取具有固定特征的頁面信息,準(zhǔn)確性很高,而且由于現(xiàn)今的主流編程語言基本上都提供了操作正則表達(dá)式的封裝API,所以可以很方便快捷地構(gòu)建基于這種模式的web信息抽取系統(tǒng)。

      3 爬蟲的設(shè)計(jì)

      對目標(biāo)人才招聘網(wǎng)站進(jìn)行分析,尋找其特點(diǎn)后決定采用帶參數(shù)URL請求的方式,將所要查詢的關(guān)鍵字傳到服務(wù)器,由其搜索出滿足條件的崗位數(shù)據(jù)。

      基于上述特征,可進(jìn)行爬蟲的設(shè)計(jì),其核心部分的流程如下:

      Step 1:從初始頁面開始爬取。

      Step 2:解析網(wǎng)頁內(nèi)容,提取具體崗位信息的URL。

      Step 3:將URL加入等解析隊(duì)列。

      Step 4:如果有下一頁,則讀取下一頁,并轉(zhuǎn)到Step 2.否則,轉(zhuǎn)第5步。

      Step 5:如果待解析隊(duì)列不為空,則隊(duì)列元素出隊(duì),并請求該元素對應(yīng)的URL。

      若待解析隊(duì)列為空,則轉(zhuǎn)Step 8

      Step 6:解析回復(fù)內(nèi)容,并進(jìn)行Web信息提取,將崗位信息寫入數(shù)據(jù)庫。

      Step 7:轉(zhuǎn)Step 5

      Step 8:結(jié)束。

      4 數(shù)據(jù)的預(yù)處理

      在爬蟲的運(yùn)行下,可獲得大量的數(shù)據(jù),為了解崗位數(shù)據(jù)的變化,便于進(jìn)行數(shù)據(jù)挖掘,則需要對已經(jīng)獲取的數(shù)據(jù)進(jìn)行預(yù)處理。

      在數(shù)據(jù)庫中保存的崗位信息數(shù)據(jù)除了有崗位名稱、發(fā)布單位、發(fā)布時(shí)間、地點(diǎn)等內(nèi)容外,關(guān)于崗位信息的數(shù)據(jù)包含在詳情頁中。由于詳情頁中的信息只進(jìn)行了文本的提取,沒有進(jìn)一步的處理。因此在進(jìn)行信息提取前需要進(jìn)行文本的預(yù)處理。例如,一個(gè)崗位有如下要求:

      (1)至少2年以上ASP.NE開發(fā)經(jīng)驗(yàn),深入了解.NET Framework框架;

      (2)熟悉WEB開發(fā)流程,熟練掌握ASP.Net MVC、WebAPI框架;

      (3)熟悉MS-SQL、MySql、Oracle等主流數(shù)據(jù)庫;

      ……

      對上述崗位要求進(jìn)行分析,可知:崗位中的關(guān)鍵字與其他文檔中的關(guān)鍵詞不同。其他文檔中的關(guān)鍵詞由用詞頻的方式進(jìn)行確認(rèn),而崗位要求中的關(guān)鍵詞往往僅出現(xiàn)一次。另外,越是出現(xiàn)在文本前方的關(guān)鍵詞就越重要。基于上述規(guī)律,使用Python的第三方工具包Gensim對崗位要求進(jìn)行切片和停用詞過濾,再按先后順序排列,即可得到崗位要求中各要素的重要性序列。其中切片與停用詞過濾的代碼如下:

      stoplist=open('stopword.txt','r',encoding="utf-8").read()

      stoplist = set(w.strip() for w in stoplist)

      segtexts=[]

      for line in lines:

      doc=[]

      for w in list(jieba.cut(line,cut_all=True)):

      if len(w)>1 and w not in stoplist:

      doc.append(w)

      segtexts.append(doc)

      在采用上述代碼進(jìn)行分析后,便得求得該崗位信息的數(shù)據(jù)格式如表1所示:

      5 結(jié)束語

      在使用Python進(jìn)行爬蟲的設(shè)計(jì)后,在對所獲得的文本使用Gensim進(jìn)行分詞處理和停用詞過濾后,針對崗位信息中,關(guān)鍵字僅少量出現(xiàn)的情況,使用關(guān)鍵字出現(xiàn)的先后順序設(shè)計(jì)重要性序列。最終完成數(shù)據(jù)的預(yù)處理工作。

      參考文獻(xiàn):

      [1] 溫亮明, 張麗麗, 黎建輝. 大數(shù)據(jù)時(shí)代科學(xué)數(shù)據(jù)共享倫理問題研究[J]. 情報(bào)資料工作, 2019, 40(2): 38-44.

      [2] 楊凌云. 主題網(wǎng)絡(luò)爬蟲關(guān)鍵技術(shù)的應(yīng)用探討[J]. 電腦編程技巧與維護(hù), 2018(11): 33-35.

      [3] 柳汨. 基于HTML語言的網(wǎng)頁制作淺析[J]. 中小企業(yè)管理與科技: 上旬刊, 2016(1): 258.

      [4] 馮佳捷, 王瑞. 中文分詞技術(shù)對中文搜索引擎的查準(zhǔn)率及查全率的影響[J]. 計(jì)算機(jī)光盤軟件與應(yīng)用, 2013, 16(6): 184, 259.

      【通聯(lián)編輯:謝媛媛】

      猜你喜歡
      網(wǎng)絡(luò)爬蟲數(shù)據(jù)分析
      煉鐵廠鐵量網(wǎng)頁數(shù)據(jù)獲取系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
      淺析大數(shù)據(jù)時(shí)代對企業(yè)營銷模式的影響
      辽中县| 突泉县| 增城市| 弥渡县| 巴塘县| 清流县| 武隆县| 峨山| 赤峰市| 吉首市| 宁德市| 曲松县| 尤溪县| 辉县市| 凤山市| 邵阳县| 丹凤县| 金华市| 乌兰察布市| 青田县| 泰安市| 宁安市| 滨州市| 进贤县| 岳普湖县| 平和县| 濉溪县| 罗源县| 连城县| 上虞市| 上犹县| 股票| 大冶市| 兴文县| 化德县| 儋州市| 韶山市| 那坡县| 翁牛特旗| 同德县| 平原县|