• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 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)型思路
    大连市| 商都县| 平泉县| 夹江县| 琼中| 探索| 新田县| 普宁市| 斗六市| 辽源市| 台湾省| 香港| 沅陵县| 嘉义市| 璧山县| 罗江县| 惠州市| 蓝田县| 苍梧县| 哈尔滨市| 贵南县| 綦江县| 宁河县| 万山特区| 罗定市| 孟连| 洞口县| 苍梧县| 娱乐| 仙居县| 霍城县| 丹江口市| 利津县| 皮山县| 莱阳市| 阳江市| 明光市| 镇坪县| 阳新县| 大洼县| 襄汾县|