• 
    

    
    

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

      ?

      網(wǎng)絡(luò)爬蟲在采集崗位招聘數(shù)據(jù)方面的應(yīng)用實踐

      2018-01-04 10:59湯義好
      電腦知識與技術(shù) 2018年28期
      關(guān)鍵詞:大數(shù)據(jù)

      湯義好

      摘要: 現(xiàn)代教學(xué)設(shè)計理論認為優(yōu)化教學(xué)過程,可以更好有效地達成教學(xué)目標,提高教學(xué)效率。文章闡述了在崗位分析系統(tǒng)中如何利用網(wǎng)絡(luò)爬蟲框架WebMagic不斷地從網(wǎng)絡(luò)采集崗位招聘數(shù)據(jù),并保存到HBase數(shù)據(jù)庫的一個過程。

      關(guān)鍵詞:大數(shù)據(jù);崗位招聘;WebMagic

      中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2018)28-0008-02

      大學(xué)生最關(guān)心的莫過于就業(yè),高校的數(shù)字化建設(shè)日漸成熟,大數(shù)據(jù)在就業(yè)方面的應(yīng)用正處在積極探索階段??梢哉f數(shù)據(jù)采集是大數(shù)據(jù)應(yīng)用開發(fā)的一個重要環(huán)節(jié),如果沒有數(shù)據(jù),處理分析也就無從談起。下面我們就來討論下如何進行數(shù)據(jù)采集。

      1 數(shù)據(jù)采集的來源與工具

      就業(yè)信息主要來自網(wǎng)絡(luò)和學(xué)校招聘,主要的崗位數(shù)據(jù)源于網(wǎng)絡(luò),需要有一套采集軟件也就是爬蟲。爬蟲有很多,綜合考慮WebMagic是一個無序配置、便于二次開發(fā)的爬蟲框架,其提供簡單靈活的API,只需要少量代碼既可以實現(xiàn)。數(shù)據(jù)抓取時序圖如圖1所示。

      Downloader負責(zé)從互聯(lián)網(wǎng)上下載頁面,以便后續(xù)處理。WebMagic默認使用Apache HttpClient作為下載工具。PageProcessor負責(zé)解析頁面,抽取有用的信息,以及發(fā)現(xiàn)新的鏈接。WebMagic使用Jsoup作為HTML解析工具,并基于其開發(fā)了解析XPath的工具Xsoup。PageProcessor對于每個站點每個頁面的解析都不一樣,是需要使用者定制的部分。Scheduler負責(zé)調(diào)度,一般無須自己定制。Pipeline負責(zé)抽取結(jié)果的處理,包括計算、持久化到文件、數(shù)據(jù)庫等。默認提供了輸出到控制臺和保存到文件兩種結(jié)果處理方案。

      2 如何實施爬取任務(wù)

      (1) 解析崗位列表源代碼

      定制基于Java的WebMagic爬蟲框架抓取招聘網(wǎng)站上根據(jù)崗位的關(guān)鍵詞如“大數(shù)據(jù)”搜索出的崗位結(jié)果。列出的關(guān)于關(guān)鍵詞搜索出來的列表就是爬蟲抓取的起始頁??梢酝ㄟ^添加后續(xù)鏈接的URL至爬取隊列,使得爬蟲按照要求一步步循環(huán)下去。這里需要添加的鏈接便是崗位的信息頁,以及后續(xù)列表分頁。分析頁面中的相同項,可以發(fā)現(xiàn)所需要的URL是一個唯一的超鏈接,記下標簽的樣式名稱交給Xpath識別,并添加至抓取列,實現(xiàn)代碼如下。

      select = page.getHtml().xpath(“//p[@class = t1 ]”);

      urls = select.links().all();

      page.addTargetRequests(urls);

      需要注意的是,要防止添加空白搜索結(jié)果頁的鏈接,否則將會把整個招聘網(wǎng)站的崗位全部抓取下來。所以需要添加提出隊列的保護機制,代碼如下:

      Iteratror it= urls.iterator();

      while(it.hasNext()){

      String x = it.next();

      If(x.equals(“http://...”)){

      it.remove();

      }

      }

      page.addTargetRequest(urls);

      (2) 解析崗位信息頁面

      需要爬取的崗位信息包括職位名稱、發(fā)布時間、是否洗數(shù)據(jù)、編號、工作地點、工作經(jīng)驗、薪資、招聘人數(shù)、學(xué)歷、崗位描述、職能類別、公司名稱、公司性質(zhì)、公司行業(yè)、公司規(guī)模等。由于格式基本差不多可以json配置項的方式將某個點的正則保存在一起,方便調(diào)用。WebMagic框架可以根據(jù)獲取的正則定位相關(guān)的內(nèi)容。具體代碼如下:

      page.putField("jobname", page.getHtml().xpath("http://div[@class='cn']/h1/text()").toString());

      page.putField("name", page.getHtml().xpath("http://p[@class='cname']/a/text()").toString());

      (3) 根據(jù)條件保存抓取到的信息

      根據(jù)條件篩選崗位信息,比如已經(jīng)列出的一些培訓(xùn)機構(gòu)的“公司黑名單”,保存在數(shù)組中,那么就可以使用簡單的if語句來判斷。對于發(fā)布日期,僅需要保留當天或本周發(fā)布的招聘信息。篩選完成便可以將抓取內(nèi)容選擇性的保存到本地的某個文件中。也可以將結(jié)果保存到HDFS和HBase數(shù)據(jù)庫中,這樣更有助于后面的大數(shù)據(jù)處理。

      (4) 運行主程序

      WebMagic的核心組件為PageProcessor與Pipeline。用戶可以自己定制這兩個組件,而調(diào)用這兩個核心組件是通過Spider類,其簡單的代碼如下:

      Spider.create(new CrawlJob())

      .addUrl(URL_START)

      .addPipleline(new PipelineJob()).thread(5).run();

      可以借助系統(tǒng)的定時服務(wù)來實現(xiàn)程序的定時爬取功能使用代碼如下:

      public ServiceState start() {

      initializer = new InitializeService(this);

      initializer.start();

      services.add(initializer);

      Service jobAnalyzer = new JobAnalysisService(this, initializer);

      jobAnalyzer.start();

      猜你喜歡
      大數(shù)據(jù)
      淺談大數(shù)據(jù)在出版業(yè)的應(yīng)用
      “互聯(lián)網(wǎng)+”對傳統(tǒng)圖書出版的影響和推動作用
      大數(shù)據(jù)環(huán)境下基于移動客戶端的傳統(tǒng)媒體轉(zhuǎn)型思路
      峡江县| 双牌县| 宜州市| 泽州县| 黎平县| 旌德县| 望谟县| 高要市| 夏河县| 康定县| 庐江县| 荥经县| 承德市| 汤阴县| 邵阳市| 勐海县| 麻阳| 黔东| 工布江达县| 阿坝| 龙川县| 佛山市| 汤阴县| 壶关县| 台安县| 淮南市| 巴林左旗| 张家港市| 诸城市| 沅陵县| 承德市| 沁阳市| 华亭县| 宁乡县| 德清县| 呼和浩特市| 桦甸市| 永平县| 桐乡市| 阳新县| 商都县|