999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于51job網站招聘信息的爬取與分析
——以Python技術崗位為例

2021-04-24 13:05:16毛遂毛紅霞
網絡安全技術與應用 2021年4期
關鍵詞:可視化信息

◆毛遂 毛紅霞

(四川大學錦城學院 計算機與軟件學院 四川 611731)

1 背景

伴隨著社會便利性科技的不斷發展和大數據相關技術的普及與應用,大多數人由前往人才市場的傳統招聘轉變為在相關招聘網查看和篩選合適崗位。網絡招聘不但招聘范圍廣、招聘信息齊全,而且招聘方式更為便捷。它打破了時間和地域的限制,逐漸成為企業組織招聘的主流方式之一[1]。但因為大量相關信息的充斥和地域空間的限制,很多的招聘者難以在短時間內找出適合自己的崗位和工作地點。

網絡爬蟲技術的不斷發展剛好為這樣繁雜的數據找到了一條很好的處理道路,利用web 網絡爬蟲技術可以將大量的招聘信息保存到本地,再結合Python 語句就可以實現數據的清洗整合和圖例繪制。

2 相關技術分析

2.1 爬取技術分析

網絡爬蟲(Web Crawler),是一種按照一定的規則,自動提取Web網頁的應用程序或者腳本,工作原理是基于http 協議中請求與響應機制。其優點在于,它可以將整個網頁的源代碼完整爬取下來[2]。訪問者通過相關設備發送請求并傳輸url 到目標服務器,目標服務器通過相關處理和優化分析后返回訪問者所需信息,訪問者得到相關HTML 信息后可利用Beautiful Soup,正則表達式,Xpath 等技術去獲取到想要的網頁固定信息。此外本次實驗將通過引入selenium,time等包進行網頁的動態爬取。

2.2 數據清洗和可視化技術分析

Python 這門語言為技術者們提供了大量的數據處理的方式,常用的有pandas 以及matplotlib。Pandas 是用于高性能數據分析的技術庫,在支持各種數據結構相互轉換的同時又可提取和保存數據。而Matplotlib 可以將處理好的數據轉化為圖表形式,通過可視化將數據進行直觀的展示[3]從而反映出數據的各項明顯特征。

3 總體描述

本次實驗將通過 Pycharm 2020.1.3,Google Chrome 86.0 和selenium 庫當中的webdriver 讓電腦自行模擬人登錄和訪問指定網站(51Job 招聘網站)的一系列行為。通過for 循環和driver.page_source保存翻頁的源代碼信息,再利用BeautifulSoup 相關方法提取指定信息的節點并保存至空列表,以便后續利用append 和get 方法獲取指定文本信息。數據清洗過程使用Python 語句實現非標準數值的處理和空缺值處理。

數據可視化過程利用Matplotlib 畫圖工具進行相應的作圖,以便直觀看出目標爬取數據之間的聯系與區別。

4 爬取實現

4.1 登錄和搜索相關內容

本次實驗爬取的51Job 網站在登錄前和登錄后所展示的內容不同,故需要通過完成登錄才能實現相關數據的爬取工作。登錄過程使用語句如:driver.find_element_by_css_selector 和send_keys。此過程可以讓電腦自行實現輸入指定賬戶和密碼,若在登錄過程當中遇到驗證問題(滑塊點擊)則需手動輔助完成。

4.2 相關內容的爬取

首先可以利用Google Chrome 瀏覽器的F12 開發者工具來查看所要爬取內容在網頁上對應的標識。之后使用BeautifulSoup 寫出提取表達式進行一一爬取。在原網頁中可以看到爬取對象職業名稱、工資、地點、要求、時間都是在span 這個節點下的,除了彼此之間的class 名稱不同。而公司名稱在a 節點下,公司的大小是在p 節點下。通過append 方法可以將爬取下來的文本信息放入每一個所對應的空列表當中。具體代碼如下:

for i in soup.find_all('span',class_=['jname at','sal','d at','time')

for i in soup.find_all('a',class_='cname at')

for i in soup.find_all('p',class_='dc at')

由于是利用webdriver 實現的動態爬取,所以需要實現自動翻頁。其具體如下:首先使用css 找到每頁原址定位如:在翻第二頁時的地址為(body >div:nth-child(4)>div.j_result >div >div.leftbox >div:nth-child(4)>div.j_page >div >div >div >ul >li:nth-child(3)>a)仿制如上操作7 頁之后發現,此后的css 定位將會固定不變,同時也不難看出在翻頁規律上唯一的不同是li:nth-child()括號中的數字,當通過for 循環改變括號數字的時候便可實現網頁爬取。

5 數據清洗

5.1 數據去重和薪資缺失值處理

在保證數據一一對應的前提下,去除重復行(data=data.drop_duplicates())。

如果將所有薪水中帶有空值的數據剔除會大大降低數據統計的可靠程度,所以會將爬取的數據通過指定列名的形式來逐行遍歷,找出其眾數值并填入存在缺失值的行中。此時填充完的薪水列是單獨存在的新列,可以用覆蓋的形式讓其替代原始數據列。最后用isnull().sum()來檢查缺失值是否消除,以驗證工作的可行性。

5.2 拆分和整合數據

通過觀察csv 文件當中的數據如:“北京-朝陽區 | 3-4 年經驗| 本科 | 招3 人”可以發現許多有用的數據是通過( | )相連在一起的,不滿足數據處理條件,所以需要將此列的數據進行相應的拆分和保留。

同樣在文件中的requires 和company_size 列都可以發現一些不符合招聘信息格式的存在。此時就需要去進行相應的處理工作。如requires 當中存在“深圳-福田區 | 本科 | 招2 人”(標準格式為四個招聘信息)這樣招聘信息只有三個的情況,company_size 當中有著“私企”(標準格式為兩個招聘信息)。

在對應的 jobField 列中存在如“后端研發工程師”這樣不包含所查詢關鍵詞Python 的崗位名稱的情況。同時也會存在python 中的開頭英文大小寫不統一的情況,所以都需要進行統一化處理。具體代碼如下:

J=j.split(' | ')

k=k.replace('python','Python')

if len(I)!=4 or len(J)!=2 or 'Python' not in k:

原始列名requires 拆分后構成新列名“area”,“work year”,“education”,“hiring”,待裝入清洗后的數據之后將原來的列名requires刪除。對 Company_size 執行相同操作后構成 companyType 和companySize。

5.3 去掉括號內容和地區優化

在jobField 和companyType 當中可以發現有的數據是帶有多余括號的,為了使數據看起來美觀就需要利用正則表達式去掉中英文括號及其內容(i=re.sub('(.*?)','',i),i=re.sub('(.*?)','',i))

清洗后的數據集當中地區數據依然存在附屬的情況,如“北京-朝陽區”,本次實驗只留下市級地區。

5.4 薪資優化

在薪資列當中會出現薪資不統一的情況如:“***千/月,***元/天(日),***萬/月”所以綜合考慮,最佳的方案是將單位都統一成“***千/月”的形式。而對于薪資是一個區間的相關形式則采取平均數的方式來處理。如出現“5-8 千/月”在清洗后就會得到“6.5 千/月”的結果,結果保留一位小數。具體代碼如下:

mean_salary=(low_salary+high_salary)/2

salary='-'.join((str(low_salary),str(high_salary)))+'千/月'

6 數據分析可視化

6.1 崗位占比和企業類型

根據清洗后的相關數據可以得出在與Python 技術相關工作崗位的餅狀圖(左圖),前五種分別為Python 開發工程師、Python 高級開發工程師、Python 工程師、Python 爬蟲工程師和Python 后端開發工程師。其實不難看相關崗位按照當前的潮流趨勢依然會以技術開發方向為主。俗話常說“興趣是最好的老師”生活就要把興趣和工作結合起來,做自己感興趣的事[4]招聘者可通過制作的圖表直觀獲得自己是否適合相關崗位的判斷。在保證高效篩選工作崗位的同時,也能獲得最為主觀的感受。

圖1 崗位占比(左)和企業類型圖(右)

在企業類型分布圖當中排名前五的類型分別是民營公司、上市公司、外企、合資和國企,而民營公司又以絕對性的市場占比力壓其他三者,可以看出在相關的技術領域民營公司對于新技術和對于人才的渴望是比較強烈的。

6.2 薪資同學歷與地區之間的關系

相信無論是在傳統行業還是新興行業,影響基本工資的因素主要有:職稱學歷、工齡、工作技能、工作量和職位差別等[5]這也合乎大家對于行業的傳統認知。通過圖2 可以很清楚看出由于學歷不同帶來的收入差距,這也解釋了這幾年以來為什么報考研究生的人數在不斷攀升的原因,每一個人都希望通過提升學歷來讓自己的薪資水平有一個質的提升。以圖2 來看許多的公司都會以高額的薪資水平(本圖達到19.50 千/月)去吸引高級人才,其行業的熱門程度不言而喻。因為Python 語言由于其自身特點,在很多領域都非常優秀,是一門真正的全棧語言。對于未來人工智能領域的發展,Python 語言會繼續發揮其不可代替的作用,推進信息時代的持續發展。[6]

圖2 薪資同學歷與地區之間的關系

通過圖2 也可以清晰看出相關崗位招聘最多的城市分別為:上海、深圳、廣州、北京和南京。北京、上海、廣州、深圳(北上廣深)作為我國最發達的城市,具有經濟高速發展的獨特優勢[7]。上海作為我國最早一批對外開放港口的城市,對于經濟的影響力不言而喻,而支撐深厚經濟基礎的必然是新技術、新發展、新產業和高技術人才。深圳和廣州都處在沿海地區對外和對內貿易的交接口,隨著廣州貿易業務的不斷升級和深圳高科技創新金融產業的發展高級技術人才的需要必然也是剛需。所以緊靠著沿海城市和行業大公司落地較多的上海對于年輕人來說都是很理想的求職地選擇,剛好也是招聘發布最多的地方。

7 結束語

本文基于selenium 庫再結合Google Chrome 實現了對于招聘網站51Job 中與Python 技術相關職業崗位的爬取。通過數據的相關清洗和制圖模塊完成了數據可視化工作。對崗位占比、企業類型、薪資與學歷和崗位需求量與薪資之間的關系進行了相關的分析和結論總結,對于招聘者有著一定的輔助決策的作用。

猜你喜歡
可視化信息
自然資源可視化決策系統
北京測繪(2022年6期)2022-08-01 09:19:06
思維可視化
師道·教研(2022年1期)2022-03-12 05:46:47
基于Power BI的油田注水運行動態分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
自然資源可視化決策系統
北京測繪(2021年7期)2021-07-28 07:01:18
基于CGAL和OpenGL的海底地形三維可視化
“融評”:黨媒評論的可視化創新
傳媒評論(2019年4期)2019-07-13 05:49:14
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
信息
建筑創作(2001年3期)2001-08-22 18:48:14
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 日本午夜精品一本在线观看 | 成年免费在线观看| 天堂成人av| 青青草国产一区二区三区| 91色综合综合热五月激情| 亚洲成人网在线播放| 熟妇人妻无乱码中文字幕真矢织江 | 99视频在线免费看| 国产成人91精品免费网址在线| 国产激情影院| 91青青草视频在线观看的| 亚洲成人精品| 农村乱人伦一区二区| 国产欧美精品一区二区| 熟女成人国产精品视频| av尤物免费在线观看| 亚洲二区视频| 婷婷亚洲视频| 免费中文字幕一级毛片| 欧美成人区| 天堂网国产| 香蕉在线视频网站| 亚洲综合专区| jizz亚洲高清在线观看| 99久久国产综合精品2020| 国产免费怡红院视频| 亚洲中文字幕久久精品无码一区| 国产 在线视频无码| 日韩精品资源| 97视频在线观看免费视频| 亚洲A∨无码精品午夜在线观看| 五月天福利视频| 91久久国产热精品免费| 秘书高跟黑色丝袜国产91在线| 欧美在线黄| 久久午夜影院| 国产凹凸视频在线观看| 精品91视频| 免费毛片网站在线观看| 日本亚洲欧美在线| 欧美精品成人一区二区视频一| 5388国产亚洲欧美在线观看| 欧美日韩国产在线人成app| 亚洲人成在线精品| 国产黑丝一区| 久久永久精品免费视频| 亚洲女同欧美在线| 在线观看国产精品日本不卡网| 亚洲 日韩 激情 无码 中出| 亚洲无码精品在线播放| 欧美成人精品一级在线观看| 精品国产网| 美女裸体18禁网站| 国产亚洲一区二区三区在线| 精品国产免费观看一区| 永久免费精品视频| 欧美黄色a| 亚洲中文字幕97久久精品少妇| 精品五夜婷香蕉国产线看观看| 亚洲成人一区在线| 国产无码精品在线播放| 超清无码一区二区三区| 亚洲中文字幕久久无码精品A| 国产午夜在线观看视频| 亚洲精品你懂的| 国产精品三级专区| 黄色在线不卡| 99视频全部免费| 国产亚洲精品无码专| 国产精品2| 99视频国产精品| 99精品福利视频| 国产性猛交XXXX免费看| 欧美成人A视频| 国产微拍一区二区三区四区| 亚洲色欲色欲www在线观看| 精品久久久久久久久久久| 欧美日韩在线成人| 久久国产成人精品国产成人亚洲| 五月婷婷综合网| 国产精品私拍在线爆乳| 国产高清免费午夜在线视频|