• 
    

    
    

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

      基于網(wǎng)絡(luò)爬蟲(chóng)的就業(yè)數(shù)據(jù)分析

      2020-01-13 07:48:22項(xiàng)博良唐淳淳曹健東
      關(guān)鍵詞:爬蟲(chóng)薪資網(wǎng)頁(yè)

      項(xiàng)博良, 唐淳淳, 錢 前, 曹健東

      (上海工程技術(shù)大學(xué) 機(jī)械與汽車工程學(xué)院, 上海 201620)

      0 引 言

      隨著人工智能的概念逐步的深入展開(kāi),人工智能因其高效性和實(shí)用性受到越來(lái)越多的重視。作為人工智能的重要組成部分,大數(shù)據(jù)也開(kāi)始在社會(huì)生產(chǎn)中發(fā)揮巨大作用,同時(shí)還帶動(dòng)了社會(huì)生活質(zhì)量的全面提升,并提供了以往不曾有過(guò)的便利性。在國(guó)內(nèi)對(duì)高等教育改革正邁向更深層次的時(shí)候,各校的畢業(yè)生規(guī)模也逐年增加。臨近畢業(yè)時(shí),或多或少都會(huì)存在許多迷茫。而在招聘、應(yīng)聘的過(guò)程中,互聯(lián)網(wǎng)作為當(dāng)下承載海量招聘信息的重要載體,則給畢業(yè)生的擇業(yè)提供了一條便捷途徑。只是互聯(lián)網(wǎng)的信息檢索中卻會(huì)面臨許多用戶并不需要的信息,只有通過(guò)人工篩選、再經(jīng)總結(jié)對(duì)比后,才能得到最終想要的信息。

      為了幫助高校畢業(yè)生在擇業(yè)時(shí)能夠快速獲取特定的需求信息,并且通過(guò)快速數(shù)據(jù)分析得到自身?yè)駱I(yè)的準(zhǔn)確定位,從而做出更好的選擇,為此本文設(shè)計(jì)研發(fā)了一套針對(duì)于招聘就業(yè)的專用爬蟲(chóng)。這里即以BOSS直聘作為實(shí)例,對(duì)如何開(kāi)發(fā)爬蟲(chóng)獲取信息,及對(duì)獲取的信息快速分析進(jìn)行了深入探討與研究。對(duì)此擬展開(kāi)剖析論述如下。

      1 爬蟲(chóng)的設(shè)計(jì)

      1.1 系統(tǒng)需求及分析

      網(wǎng)絡(luò)爬蟲(chóng)系統(tǒng)的開(kāi)發(fā)是否成功取決于確保系統(tǒng)能夠?qū)崿F(xiàn)用戶定制功能,達(dá)到預(yù)期設(shè)計(jì)目的。因此,在網(wǎng)絡(luò)爬蟲(chóng)系統(tǒng)開(kāi)發(fā)之前,就需要對(duì)該系統(tǒng)需求加以詳盡分析,從而對(duì)整體的設(shè)計(jì)有一個(gè)清晰的思路。時(shí)下,普遍適用的爬蟲(chóng)系統(tǒng)都是模塊化的,模塊化的程序設(shè)計(jì)有利于代碼塊的測(cè)試與維護(hù),而且也進(jìn)一步增加了代碼的適用性。在此基礎(chǔ)上,只要對(duì)各個(gè)模塊進(jìn)行組合,就能夠構(gòu)建出一個(gè)完整的爬蟲(chóng)系統(tǒng)。本次研究即以BOSS直聘為例,開(kāi)展模塊化的編程設(shè)計(jì)。因?yàn)檠芯恐荚谕ㄟ^(guò)爬蟲(chóng)系統(tǒng)對(duì)當(dāng)前就業(yè)做出科學(xué)分析,故而針對(duì)此需求就要從BOSS直聘網(wǎng)站中獲取全部的崗位信息,以及從每個(gè)崗位中獲得包括各崗位名稱、工作地點(diǎn)、薪水、公司規(guī)模性質(zhì)、工作要求在內(nèi)的各種關(guān)鍵信息。至此,在接下來(lái)的功能、模塊設(shè)計(jì)中,就具備了較強(qiáng)的針對(duì)性。

      1.2 爬蟲(chóng)模塊設(shè)計(jì)

      1.2.1 爬蟲(chóng)整體設(shè)計(jì)思路

      爬蟲(chóng)系統(tǒng)的設(shè)計(jì)思路為:首先,需要獲得所有包括崗位信息網(wǎng)頁(yè)的源碼;其次,在每一頁(yè)的網(wǎng)頁(yè)源碼中尋找出與需求相匹配的信息,此時(shí)就需要連接爬蟲(chóng)系統(tǒng)和數(shù)據(jù)庫(kù),將每次成功匹配到的信息均存入數(shù)據(jù)庫(kù)中,直至所有網(wǎng)頁(yè)檢索完畢。在數(shù)據(jù)爬取的整個(gè)過(guò)程中,針對(duì)BOSS直聘的高度反爬,還要在各個(gè)模塊中引入適當(dāng)?shù)姆窗遣呗?,以此保證數(shù)據(jù)爬取的連續(xù)性。研究可得整體設(shè)計(jì)框架如圖1所示。

      圖1 整體設(shè)計(jì)框圖

      1.2.2 爬蟲(chóng)的網(wǎng)頁(yè)抓取模塊

      網(wǎng)頁(yè)抓取模塊作為爬蟲(chóng)系統(tǒng)中最重要的部分,也是起始的模塊。但是從實(shí)際爬取的情況來(lái)看,針對(duì)同一個(gè)IP在短時(shí)間內(nèi)的多次爬取,會(huì)被網(wǎng)站屏蔽IP地址,因此在這里采用代理IP池的技術(shù)去訪問(wèn)。為了避免被對(duì)方發(fā)現(xiàn),還需要加入U(xiǎn)ser-Agent將自己偽裝成代理服務(wù)器。通過(guò)構(gòu)造代理IP池以及由眾多用戶代理組成的代理池,每次隨機(jī)選擇訪問(wèn)IP與用戶代理的搭配,據(jù)此而將自己偽裝成來(lái)自不同IP的用戶訪問(wèn),大大降低了被反爬蟲(chóng)的概率。接下來(lái)采用Requsets庫(kù)的API去解析當(dāng)前第一層的URL。如:

      resp=requests.get(url,headers=headers,proxies=proxies,timeout=5)

      1.2.3 網(wǎng)頁(yè)源碼分析模塊

      在提取好第一層URL的源碼后,分析當(dāng)前文本,尋找用戶需要的關(guān)鍵信息,根據(jù)用戶的需求,還需要了解每一類工作的名稱與對(duì)應(yīng)網(wǎng)頁(yè)鏈接,通過(guò)對(duì)ELEMENTS的尋找,發(fā)現(xiàn)在標(biāo)簽a-href下存在著用戶需要的信息,將所有的工作名稱存入JOB列表,將所有的工作鏈接構(gòu)造成完整的URL存入與JOB列表對(duì)應(yīng)的JOBURL列表。

      1.2.4 信息獲取模塊

      由于BOSS直聘網(wǎng)站每一類工作的鏈接數(shù)最多不超過(guò)10頁(yè),在構(gòu)造具體到每一頁(yè)鏈接的時(shí)候,page的數(shù)不應(yīng)超過(guò)10,且當(dāng)鏈接無(wú)效,即已經(jīng)檢測(cè)超出最后一頁(yè)的時(shí)候,便自動(dòng)退出了。構(gòu)造規(guī)則如下:

      urlbase=link+ ’?page=’ +str(i) +’&ka=page-’ +str(i)

      接下來(lái)便用requests庫(kù)去實(shí)現(xiàn)當(dāng)前網(wǎng)頁(yè)解析,同樣也可以運(yùn)用代理IP池加上用戶代理池隨機(jī)選擇與搭配的方法以便能夠更加流暢地爬取信息。一個(gè)工作崗位對(duì)于求職人員最關(guān)心的應(yīng)為崗位、薪水、公司信息,工作要求這些關(guān)鍵信息。用Beautifulsoup庫(kù)去解析好的網(wǎng)頁(yè)提取這些信息,此時(shí)將用到如下設(shè)計(jì)代碼:

      soupxbl=BeautifulSoup(resp1.text,’lxml’)

      jobkinds=soupxb1.select(’div.info-primary>h3>a>div.job-title’)

      salarys=soupxb1.find_all(’span’,class=’red’)

      yaoqius=soupxb1.find_all(’div.info-primary>p’)

      names=soupxb1.select(’div.company-text>h3>a’)

      situations=soupxb1.select(’div.info-company>div>p’)

      1.2.5 MySQL數(shù)據(jù)庫(kù)的聯(lián)合使用

      研究遍歷完BOSS直聘網(wǎng)站上每一個(gè)工作崗位獲得的信息相對(duì)來(lái)說(shuō)是一個(gè)比較大的數(shù)據(jù),在這里選擇MySQL數(shù)據(jù)庫(kù)對(duì)爬取的數(shù)據(jù)進(jìn)行存儲(chǔ),因?yàn)镸ySQL數(shù)據(jù)庫(kù)開(kāi)源,易操作、并且速度、可靠性以及適應(yīng)性都適宜。使用MySQL Server8.0,并通過(guò)pymysql庫(kù)去對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,在程序開(kāi)端,利用API建立數(shù)據(jù)庫(kù)的鏈接。設(shè)計(jì)研發(fā)代碼參見(jiàn)如下:

      conn=pymysql.connect(host=’127.0.0.1’,user=’root’,password=’xnxbl123@qq.com’,db=’bossapply’,charset=’utf8’)

      接下來(lái),將基于用戶需要保存的信息建立數(shù)據(jù)表格。設(shè)計(jì)研發(fā)代碼見(jiàn)如下:

      cur.execute("DROP TABLE IF EXISTS bossapply")

      sql_c="create table bossapply (jobchar(50),salarychar(50),requirementsvarchar (265),company_namechar(100),situationvarchar (265));"

      此后,在網(wǎng)頁(yè)的分析模塊中提取信息后,將這些數(shù)據(jù)導(dǎo)入所創(chuàng)建的數(shù)據(jù)庫(kù)中的表里面。設(shè)計(jì)研發(fā)代碼見(jiàn)如下:

      sql_insert="insert into bossapply(job,salary,requirements,company_name,situation) values (%s,%s,%s,%s,%s);"

      cur.execute(sql_insert,(s1,s2,s3,s4,s5))

      這樣就能實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作,將研究中爬取到信息成功存入數(shù)據(jù)庫(kù),為下一步的就業(yè)數(shù)據(jù)分析奠定了基礎(chǔ)。文中,利用數(shù)據(jù)庫(kù)可視化工具M(jìn)ySQL WorkBench展示的部分爬取數(shù)據(jù)如圖2所示。

      圖2 部分爬取數(shù)據(jù)

      2 數(shù)據(jù)分析

      2.1 數(shù)據(jù)處理

      通過(guò)設(shè)計(jì)好的網(wǎng)絡(luò)爬蟲(chóng)系統(tǒng),從BOSS直聘網(wǎng)站上爬取了上海地區(qū)13萬(wàn)多的崗位招聘信息數(shù)據(jù),從招聘崗位、工資待遇、工作地點(diǎn)、工作要求、公司性質(zhì)這幾方面的信息,對(duì)上海地區(qū)的就業(yè)數(shù)據(jù)做出研究與分析,對(duì)廣大擇業(yè)人員可起到一個(gè)初步指導(dǎo)的作用。

      通過(guò)Navicat Premium將數(shù)據(jù)庫(kù)導(dǎo)出成Excel文件,在Python中通過(guò)pandas庫(kù)對(duì)數(shù)據(jù)進(jìn)行處理,首先將所有的數(shù)據(jù)通過(guò)read_excel的API讀取到處理環(huán)境下,將每一列的數(shù)據(jù)分別提取出來(lái)構(gòu)造出job、salary、requirements、situation四個(gè)列表,通過(guò)遍歷整個(gè)requirements,檢索每一個(gè)元素的字段,可以統(tǒng)計(jì)出上海市每個(gè)地區(qū)大約能夠提供多少個(gè)工作崗位;同理,用上述的方法,可以統(tǒng)計(jì)出上海地區(qū)提供的工作崗位對(duì)學(xué)歷的要求,以及公司規(guī)模的情況。對(duì)于就業(yè)數(shù)據(jù)分析來(lái)說(shuō),至關(guān)重要的就是薪資分析,將提取出來(lái)的salary列表,對(duì)每一個(gè)元素采用正則表達(dá)式匹配前兩個(gè)數(shù)字,也就是這份工作的薪水上下限,求一個(gè)平均值,遍歷整個(gè)列表,對(duì)薪水分布進(jìn)行統(tǒng)計(jì)。同時(shí),通過(guò)定位以及包含字符段的方法,可以將每個(gè)地區(qū)的工作以及相對(duì)應(yīng)的薪水提取出來(lái),再通過(guò)前文對(duì)全上海各地區(qū)的工作崗位統(tǒng)計(jì),對(duì)上海各地區(qū)的平均薪資做出分析。在此基礎(chǔ)上,各行各業(yè)的薪資水平也能夠根據(jù)各行業(yè)的崗位數(shù)以及對(duì)應(yīng)的平均薪資計(jì)算得出。

      2.2 數(shù)據(jù)分析結(jié)果

      隨著應(yīng)屆畢業(yè)生的人數(shù)每年不斷上升,帶給社會(huì)的就業(yè)壓力也隨即增大,在這種就業(yè)形勢(shì)競(jìng)爭(zhēng)激烈的就業(yè)市場(chǎng)里面如何做出最佳的選擇即已成為研究的熱點(diǎn)與焦點(diǎn)。

      研究可得, 上海地區(qū)提供崗位圖如圖3所示。從圖3可以看出上海每個(gè)地區(qū)提供的崗位數(shù)還是有很大差別的,其中以浦東地區(qū)提供的崗位數(shù)最多,且從圖3可以看出金山、寶山、青浦、奉賢提供的就業(yè)崗位相對(duì)來(lái)說(shuō)較少,大多數(shù)的就業(yè)崗位還是集中在市區(qū)。同時(shí),也可得到,上海各教育程度提供崗位圖如圖4所示。從圖4結(jié)果可以看出招聘當(dāng)前的需求主要還是本科以上,大專以上,對(duì)于部分應(yīng)屆生,則可選擇考研考博,憑此來(lái)提升在未來(lái)就業(yè)市場(chǎng)上的競(jìng)爭(zhēng)實(shí)力。

      圖3 上海地區(qū)提供崗位圖

      圖4 上海各教育程度提供崗位圖

      就業(yè)市場(chǎng)對(duì)各職業(yè)的需求也是各有不同。上海各就業(yè)種類招聘情況如圖5所示。由圖5分析可知,對(duì)技術(shù)崗的需求甚至超過(guò)了其它眾多行業(yè)的需求總和,伴隨著人工智能時(shí)代的來(lái)臨,對(duì)人工智能相關(guān)的技術(shù)崗位缺口還是很大的,是一個(gè)前景可期的就業(yè)方向。在未來(lái)職業(yè)規(guī)劃還未具備清晰認(rèn)知時(shí),可以作為一個(gè)參考方向。另外,市場(chǎng)營(yíng)銷與生產(chǎn)制造行業(yè)也能提供不錯(cuò)的崗位數(shù)。在薪資水平方面,總體還是令人滿意的,主要集中在月薪6~10 K,以及10~20 K之間,月薪在10 K以上和以下的各占大約50%,整體的收入水平保持在一個(gè)比較高的水準(zhǔn)。

      圖5 上海各就業(yè)種類招聘情況

      圖6 上海招聘收入情況

      在前文對(duì)上海市總體的收入水平進(jìn)行了直觀判斷基礎(chǔ)上,繼而得到上海各地區(qū)招聘收入情況如圖7所示,上海各就業(yè)種類招聘收入如圖8所示,以便能夠?qū)蜆I(yè)選擇以及未來(lái)職業(yè)規(guī)劃進(jìn)行準(zhǔn)確及有效判斷。從圖7中可以看出,上海各地區(qū)的收入情況差距不大,但是整體上來(lái)看,徐匯區(qū)還是略高一籌,這樣在選擇就業(yè)時(shí)可以根據(jù)地區(qū)消費(fèi)的不同,以及未來(lái)規(guī)劃選擇工作區(qū)域。從圖8中可以看出,薪資水平處于前三位的行業(yè)分別是產(chǎn)品行業(yè)、管理行業(yè)以及技術(shù)行業(yè)。而在數(shù)據(jù)分析后得出,在提供崗位數(shù)量最多的技術(shù)崗上,工資并不是最高,有些崗位雖然需求量不大,但是薪水很高。而且,從薪資分布來(lái)看,80%以上的行業(yè)的月收入都已經(jīng)達(dá)到10 K或者10 K以上了,這樣人們?cè)谶x擇就業(yè)的時(shí)候,可以更少地受到薪資影響,從而做出更適合自己的選擇。

      圖7 上海各地區(qū)招聘收入情況

      圖8 上海各就業(yè)種類招聘收入

      3 結(jié)束語(yǔ)

      本文通過(guò)Python加上MySQL Server的配置,創(chuàng)建了一個(gè)基于BOSS直聘網(wǎng)站的網(wǎng)絡(luò)爬蟲(chóng)數(shù)據(jù)收集分析系統(tǒng),該系統(tǒng)能夠登錄到BOSS直聘,并獲取頁(yè)面信息,分析頁(yè)面中的URL,同時(shí)對(duì)篩選構(gòu)造后的URL再一次進(jìn)行數(shù)據(jù)篩選,將用戶獲取到的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù),在此基礎(chǔ)上將對(duì)數(shù)據(jù)進(jìn)行深層次的挖掘,也就是運(yùn)用一系列的數(shù)據(jù)分析手段,獲得關(guān)于上海各地區(qū)、各崗位的薪資待遇、招聘需求等一系列重要信息,為廣大的就業(yè)人員提供有益的借鑒與參考。

      猜你喜歡
      爬蟲(chóng)薪資網(wǎng)頁(yè)
      利用網(wǎng)絡(luò)爬蟲(chóng)技術(shù)驗(yàn)證房地產(chǎn)灰犀牛之說(shuō)
      不簡(jiǎn)單以“住房薪資”引才——遵循“一步一重天”的人才發(fā)展規(guī)律
      基于Python的網(wǎng)絡(luò)爬蟲(chóng)和反爬蟲(chóng)技術(shù)研究
      基于CSS的網(wǎng)頁(yè)導(dǎo)航欄的設(shè)計(jì)
      電子制作(2018年10期)2018-08-04 03:24:38
      利用爬蟲(chóng)技術(shù)的Geo-Gnutel la VANET流量采集
      基于URL和網(wǎng)頁(yè)類型的網(wǎng)頁(yè)信息采集研究
      電子制作(2017年2期)2017-05-17 03:54:56
      大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲(chóng)技術(shù)
      電子制作(2017年9期)2017-04-17 03:00:46
      網(wǎng)頁(yè)制作在英語(yǔ)教學(xué)中的應(yīng)用
      10個(gè)必知的網(wǎng)頁(yè)設(shè)計(jì)術(shù)語(yǔ)
      苏尼特右旗| 迁西县| 六盘水市| 嘉峪关市| 温泉县| 长寿区| 婺源县| 滨州市| 江北区| 万荣县| 庆云县| 巴塘县| 清河县| 宁都县| 龙里县| 霍林郭勒市| 张掖市| 扎兰屯市| 当阳市| 都匀市| 嘉定区| 开封市| 中方县| 剑阁县| 筠连县| 阜康市| 庆安县| 奉化市| 绥化市| 依安县| 桦南县| 上栗县| 明光市| 扎赉特旗| 大庆市| 图们市| 尤溪县| 乾安县| 博客| 凤山市| 江川县|