亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Python的就業(yè)信息獲取與分析

        2021-05-28 12:38:20龐麗彭立偉余豪夏童趙付英
        現(xiàn)代計(jì)算機(jī) 2021年10期
        關(guān)鍵詞:爬蟲薪資工程師

        龐麗,彭立偉,余豪,夏童,趙付英

        (1.西南石油大學(xué)網(wǎng)絡(luò)與信息化中心,成都610500;2.西南石油大學(xué)機(jī)電工程學(xué)院,成都610500;3.西南石油大學(xué)電氣信息學(xué)院,成都610500;4.西南石油大學(xué)地球科學(xué)與技術(shù)學(xué)院,成都610500;5.西南石油大學(xué)化學(xué)化工學(xué)院,成都610500)

        0 引言

        隨著高校的擴(kuò)招,社會(huì)學(xué)歷普遍提高,大學(xué)畢業(yè)生人數(shù)逐年上漲,大學(xué)生就業(yè)形式也變得更加嚴(yán)峻,如何及時(shí)可持續(xù)性的獲取有效就業(yè)信息,并加以分析做出相應(yīng)決策對(duì)于大學(xué)生而言顯得尤為重要。通過手動(dòng)搜索招聘網(wǎng)站、學(xué)校/企業(yè)/事業(yè)單位官網(wǎng)、微信公眾號(hào)、各省市人力資源網(wǎng)等發(fā)布的招聘信息,可以獲得海量的就業(yè)信息,然而這種方式都需要到相應(yīng)網(wǎng)站翻頁查找,重復(fù)的在不同網(wǎng)站之間切換,存在耗費(fèi)時(shí)間長(zhǎng)、搜索速度慢、信息獲取不及時(shí)、不利于集中分析統(tǒng)計(jì)等缺點(diǎn),導(dǎo)致大學(xué)生容易錯(cuò)過適合的崗位信息。針對(duì)目前的這種情況,本文提出了基于Python的就業(yè)信息獲取與分析的方法,以期為大學(xué)生搜索分析就業(yè)信息提供一定的參考價(jià)值。

        1 網(wǎng)絡(luò)爬蟲簡(jiǎn)介

        網(wǎng)絡(luò)爬蟲又稱為網(wǎng)絡(luò)蜘蛛,是一種按照一定的規(guī)則,自動(dòng)抓取萬維網(wǎng)信息的程序或腳本[1],基本原理是模擬計(jì)算機(jī)對(duì)服務(wù)器發(fā)起Requests請(qǐng)求,然后接收服務(wù)器端返回的Response內(nèi)容對(duì)其進(jìn)行解析,以提取所需信息。根據(jù)網(wǎng)絡(luò)爬蟲爬取的對(duì)象和范圍不同可將其分為通用網(wǎng)絡(luò)爬蟲和聚焦網(wǎng)絡(luò)爬蟲(即主題網(wǎng)絡(luò)爬蟲)[2],其中,通用網(wǎng)絡(luò)爬蟲爬取目標(biāo)范圍廣,通常用于搜索引擎;而聚焦網(wǎng)絡(luò)爬蟲則是針對(duì)某個(gè)特定目標(biāo)和主題進(jìn)行爬取[3]。Python因其語言的簡(jiǎn)潔性、易讀性以及可擴(kuò)展性[4],在編寫網(wǎng)絡(luò)爬蟲時(shí)具有其他語言不可比擬的優(yōu)勢(shì),其強(qiáng)大的第三方庫(kù)不僅極大節(jié)省了開發(fā)人員編寫修改代碼的時(shí)間,還支持?jǐn)?shù)據(jù)清洗和可視化,為后期的數(shù)據(jù)整理和分析提供了便捷,因此,本文采取Python語言編寫爬蟲代碼,采用主題爬蟲的策略來實(shí)現(xiàn)就業(yè)信息的批量獲取。

        2 爬蟲程序設(shè)計(jì)

        獲取相應(yīng)網(wǎng)站的信息首先需要手動(dòng)翻頁,通過觀察列表頁的URL,找到URL的構(gòu)成規(guī)律;然后通過循環(huán)語句,依次將URL取出;最后抓取URL頁面相應(yīng)的數(shù)據(jù)并存儲(chǔ)在本地進(jìn)行數(shù)據(jù)清洗及分析。本文擬以拉勾網(wǎng)為例,通過編寫爬蟲程序抓取“Python”相關(guān)崗位的就業(yè)信息,獲取的信息包括公司名稱、公司規(guī)模、招聘崗位、公司福利、工作地址、薪資水平、工作經(jīng)驗(yàn)、職位類型、學(xué)歷要求、發(fā)布日期等,并將抓取的就業(yè)信息保存在MongoDB數(shù)據(jù)庫(kù)中,以便后期進(jìn)行數(shù)據(jù)處理和可視化分析。

        2.1 分析網(wǎng)頁結(jié)構(gòu)

        使用谷歌瀏覽器進(jìn)入拉勾網(wǎng),輸入Python關(guān)鍵字搜索就業(yè)信息,通過查看源代碼發(fā)現(xiàn)網(wǎng)頁元素不在源代碼中,判斷使用了AJAX(異步加載)技術(shù),這種網(wǎng)頁要使用逆向工程來抓取數(shù)據(jù)[5]。利用谷歌瀏覽器開發(fā)者工具,選中XHR(可擴(kuò)展超文本傳輸請(qǐng)求),通過觀察Preview標(biāo)簽,可發(fā)現(xiàn)我們要獲取的信息都存放在Response返回的JSON文件中,進(jìn)一步手動(dòng)翻取拉勾網(wǎng)頁面,請(qǐng)求的URL并未發(fā)生變化,進(jìn)一步分析發(fā)現(xiàn)是利用POST方法提交表單數(shù)據(jù)依據(jù)pn字段來實(shí)現(xiàn)頁數(shù)的變化,通過這些分析編寫程序代碼構(gòu)造出列表頁。同時(shí)為避免網(wǎng)站把訪問當(dāng)作爬蟲程序加以阻止,要使用cookie信息進(jìn)行模擬登錄,以獲取信息。

        2.2 獲取就業(yè)信息數(shù)據(jù)

        就業(yè)信息獲取的實(shí)現(xiàn)主要包括三個(gè)部分:一是編寫getWebResult函數(shù),用于獲取Response返回的JSON文件,從而得到崗位全部信息。首先需要?jiǎng)?chuàng)建一個(gè)Session對(duì)象,使用Session維持同一個(gè)對(duì)話,從而獲取該對(duì)話的cookie,利用cookie實(shí)現(xiàn)模擬登錄,然后獲取JSON文件職位相關(guān)信息。

        二是編寫warefare_combine、address_combine函數(shù)對(duì)崗位信息中的福利數(shù)據(jù)和地址數(shù)據(jù)進(jìn)行預(yù)處理,在爬取信息的時(shí)候,有的公司的福利、所在城市或城市所屬區(qū)域沒有寫,讀取時(shí)會(huì)返回結(jié)果None,由于None不能與字符串相加會(huì)導(dǎo)致爬取報(bào)錯(cuò),所以需要定義合并福利和地址的函數(shù),當(dāng)返回結(jié)果為None時(shí),將其設(shè)置為空字符'',然后再實(shí)現(xiàn)相加。

        三是編寫getJob_Infos函數(shù),用于將獲取的崗位信息存儲(chǔ)在MongoDB數(shù)據(jù)庫(kù)中,需要導(dǎo)入PyMongo庫(kù)文件,連接數(shù)據(jù)庫(kù)并建立數(shù)據(jù)庫(kù)和數(shù)據(jù)集合。由于要將爬取的信息插入到數(shù)據(jù)庫(kù)中進(jìn)行存儲(chǔ),在循環(huán)調(diào)用函數(shù)之前還需要設(shè)置一個(gè)用來標(biāo)示csv是否創(chuàng)建表頭的參數(shù),表頭包括:公司、規(guī)模、招聘崗位、福利、工作地址、工資、工作經(jīng)驗(yàn)、職位類型、學(xué)歷要求以及發(fā)布時(shí)間,表頭創(chuàng)建完成之后再將爬取的信息逐條插入到數(shù)據(jù)庫(kù)中。循環(huán)體主要實(shí)現(xiàn)兩部分功能,一是循環(huán)讀取崗位信息并將福利和工作地址進(jìn)行合并,避免出現(xiàn)爬取程序失敗,二是循環(huán)將信息逐條插入到數(shù)據(jù)庫(kù)中,表頭所對(duì)應(yīng)的字段名可利用Preview標(biāo)簽查看JSON文件,以便準(zhǔn)確讀取相應(yīng)內(nèi)容。通過以上功能的編寫即可爬取python崗位相關(guān)就業(yè)信息。當(dāng)控制臺(tái)提示“爬取信息結(jié)束!”,可在MongoDB數(shù)據(jù)庫(kù)中導(dǎo)出數(shù)據(jù),導(dǎo)出的格式為CSV,由于編碼不同,用Excel打開文件會(huì)出現(xiàn)亂碼,先選用記事本打開,選擇編碼方式為ANSI再保存,打開文件后則顯示正常,如圖1展示了爬取的就業(yè)信息。

        圖1 爬取的就業(yè)信息

        2.3 就業(yè)信息數(shù)據(jù)處理

        根據(jù)圖1所展示的爬取結(jié)果可以看出獲取的數(shù)據(jù)存在一些問題,不利于對(duì)數(shù)據(jù)進(jìn)行分析,主要體現(xiàn)在:①工作地址具體到各個(gè)區(qū),不利于宏觀了解Python崗位在各個(gè)城市的需求,需要將工作地址升級(jí)到市級(jí);②工資格式顯示形式為區(qū)間,需要將最低工資和最高工資分開,便于了解Python崗位的薪資水平。選擇Excel作為數(shù)據(jù)處理工具,利用其提供的LEFT函數(shù)、FIND函數(shù)以及MID函數(shù)可以快速有效地對(duì)數(shù)據(jù)進(jìn)行整理分析。

        經(jīng)過處理后的就業(yè)信息數(shù)據(jù)如圖2所示。

        圖2 處理后的就業(yè)信息

        3 就業(yè)信息可視化分析

        根據(jù)前面整理好的數(shù)據(jù),利用Excel的圖表功能對(duì)Python崗位招聘信息進(jìn)行可視化分析,并結(jié)合Python的jieba分詞、WordCloud對(duì)崗位類型進(jìn)行詞頻統(tǒng)計(jì)并詞云化。

        從學(xué)歷要求來看(如圖3所示),從事Python相關(guān)的職業(yè)對(duì)學(xué)歷要求并不高,84%的崗位僅要求本科學(xué)歷即可,對(duì)碩士研究生的需求僅占2%,更加注重的是工作經(jīng)驗(yàn)(如圖4所示),要求有3-5年工作經(jīng)驗(yàn)的占42%,有1-3年工作經(jīng)驗(yàn)的占30%,應(yīng)屆畢業(yè)生由于沒有相關(guān)工作經(jīng)驗(yàn),符合需求的崗位僅占9%,建議大學(xué)生在校期間多參與實(shí)戰(zhàn)項(xiàng)目或者實(shí)習(xí),了解當(dāng)前技術(shù)的發(fā)展方向,熟悉項(xiàng)目的流程,積累更多的實(shí)戰(zhàn)經(jīng)驗(yàn),以便在擇業(yè)時(shí)有更多選擇的空間。

        圖3 Python崗位學(xué)歷要求占比圖

        圖4 Python崗位 工作經(jīng)驗(yàn)占比圖

        從招聘所在城市來看(如圖5所示),對(duì)Python崗位需求較大的是北京、上海、深圳、廣州這四個(gè)一線城市,其次是杭州、成都、武漢等新一線城市,二三線城市對(duì)Python崗位需求相對(duì)較少,大學(xué)生在求職Python相關(guān)崗位工作時(shí)盡量?jī)?yōu)先選擇一線或者新一線城市,以獲取更多的工作機(jī)會(huì)和更好的發(fā)展前景。

        圖5 Python崗位城市需求分布圖

        利用Python的jieba分詞,再通過WordCloud將招聘崗位高頻詞進(jìn)行詞云化(如圖6所示),根據(jù)詞云圖生成原理,詞語顯示規(guī)格越突出、距離中心位置越近,詞語出現(xiàn)頻率越高[6],從詞云圖可以看出用人單位對(duì)Python開發(fā)工程師、中高級(jí)工程師、后端開發(fā)工程師以及研發(fā)工程師的需求量較大。進(jìn)一步通過餅狀圖分析,可得出各招聘崗位所占比例,其中Python開發(fā)工程師占44%,中高級(jí)工程師占15%,后端開發(fā)和研發(fā)工程師分別占13%和9%,說明開發(fā)和研發(fā)類的崗位需求量較大,建議在校學(xué)生多學(xué)習(xí)了解開發(fā)工程師所需的技能和要求,以獲得更多的工作機(jī)會(huì)。爬蟲工程師、實(shí)習(xí)生、Python講師所占比例較小,爬蟲工程師的需求遠(yuǎn)小于開發(fā)工程師原因可能在于純爬蟲的崗位需求越來越少,建議大學(xué)生在學(xué)習(xí)爬蟲時(shí)要更多的與數(shù)據(jù)挖掘、數(shù)據(jù)分析相結(jié)合,提高綜合競(jìng)爭(zhēng)力。

        圖6 Python崗位數(shù)量占比及詞云圖

        為進(jìn)一步了解Python各崗位薪資水平,對(duì)最低工資均值以及最高工資均值進(jìn)行分析。從圖7薪資水平折線圖可以看出,Python相關(guān)崗位除了實(shí)習(xí)生的工資水平較低以外,總體來看其他崗位薪資水平較高。中高級(jí)工程師薪資水平最高,其次是運(yùn)維/測(cè)試工程師、后端開發(fā)及研發(fā)工程師,爬蟲工程師和講師的薪資水平相對(duì)較低,推薦求職者在找工作時(shí)可先考慮招聘范圍較廣的Python開發(fā)工程師,在工作中不斷積累經(jīng)驗(yàn)提高能力,向薪資水平較高的中高級(jí)工程師過渡。

        圖7 Python崗位薪資水平折線圖

        4 結(jié)語

        本文通過分析招聘網(wǎng)站網(wǎng)頁結(jié)構(gòu),利用Python語言及其強(qiáng)大的第三方庫(kù)編寫流程代碼,獲取相應(yīng)的就業(yè)信息,并對(duì)收集到的數(shù)據(jù)進(jìn)行清洗整理及分析,結(jié)合可視化圖表及詞云圖了解Python相關(guān)崗位的學(xué)歷要求、城市需求量、崗位分布情況以及薪資水平等,有效的降低了求職者手動(dòng)翻頁瀏覽招聘信息的時(shí)間成本,分析結(jié)論能夠?yàn)榍舐氄咛峁﹨⒖家庖?,同時(shí)也為在校學(xué)生提出了學(xué)習(xí)方向及側(cè)重點(diǎn)的相關(guān)建議。本文的不足之處在于只獲取了單個(gè)網(wǎng)站的就業(yè)信息,下一步的重點(diǎn)將放在如何進(jìn)行多數(shù)據(jù)源的就業(yè)信息獲取,以獲得更加全面的就業(yè)信息。此外,本文主要針對(duì)個(gè)人求職者,因此,只是在獲取就業(yè)信息之后進(jìn)行了簡(jiǎn)單的統(tǒng)計(jì)分析;而對(duì)于高校管理者,如何在獲取海量的就業(yè)信息之后為學(xué)生實(shí)現(xiàn)個(gè)性化的就業(yè)信息推薦,則需要借助一些大數(shù)據(jù)分析技術(shù)。

        猜你喜歡
        爬蟲薪資工程師
        《機(jī)械工程師》征訂啟事
        利用網(wǎng)絡(luò)爬蟲技術(shù)驗(yàn)證房地產(chǎn)灰犀牛之說
        不簡(jiǎn)單以“住房薪資”引才——遵循“一步一重天”的人才發(fā)展規(guī)律
        Kenoteq的工程師研發(fā)環(huán)保磚塊
        英語文摘(2021年10期)2021-11-22 08:02:40
        基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
        青年工程師
        安徽建筑(2020年4期)2020-05-23 01:37:12
        利用爬蟲技術(shù)的Geo-Gnutel la VANET流量采集
        大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲技術(shù)
        電子制作(2017年9期)2017-04-17 03:00:46
        工程師變成“資本家”
        欧美成人片在线观看| av一区二区三区综合网站| 不卡一区二区视频日本| 国产精品成人aaaaa网站| 少妇太爽了在线观看免费视频| 亚洲AV色欲色欲WWW| 中文字幕一区二区av| 久久久久无码国产精品一区| 亚洲av色无码乱码在线观看| 精品无码人妻久久久一区二区三区 | 欧美日韩一区二区三区在线观看视频| 亚洲巨乳自拍在线视频| 日韩av中出在线免费播放网站| 国产精品髙潮呻吟久久av| 狠狠躁18三区二区一区| 亚洲 高清 成人 动漫| 91极品尤物国产在线播放| 香港三级日本三韩级人妇久久| 成人精品天堂一区二区三区 | 亚洲av无码专区在线亚| 国产av一区二区日夜精品剧情| 精品免费国产一区二区三区四区| 97精品人妻一区二区三区香蕉| 国内精品久久久久久久亚洲| 国产精品综合女同人妖| 亚洲av无码专区亚洲av网站| 欧美日韩亚洲精品瑜伽裤| 国产一区二区三区白浆在线观看| 自拍偷拍 视频一区二区| 免费少妇a级毛片人成网| 免费一本色道久久一区| 人妻1024手机看片你懂的| 国产麻豆剧果冻传媒一区| 日韩精品无码久久一区二区三| 久久激情人妻中文字幕| 蜜桃精品人妻一区二区三区| 国产熟妇人妻精品一区二区动漫| 久久久久一| 第一九区另类中文字幕| 国产精品r级最新在线观看| 亚洲乱码一区二区三区成人小说 |