最近兩週做了一個小專案,爬取招聘網站的資料,並做了圖形視覺化資料顯示,之前一直在找工作,但是一直碰壁,不是簡歷投了沒反應,就是對方告訴你不合適,哎,於是就想能不能抓取招聘網站的資料,然後分析下,而且方便自己篩選資訊,更加清楚知道市場上的情況。
線上預覽的地址
http://yehe.37he.cn/job/#/weekline
專案的地址
https://github.com/xianyunyh/spider_job
專案資料直接爬取boss移動端的介面,原因有兩個,
第一、移動端有對應的分頁的ajax介面。
比如
https://www.zhipin.com/mobile/jobs.json?page=2&city=101020100&query=PHP
第二、移動端介面元素少。dom解析稍快。
資料可能比招聘網中的資料少,因為做了過濾,比如搜尋處理的PHP,可能還有java等職位,也有的是職位標題中,不含PHP。boss的搜尋中,好像是隻要jd中有php,都顯示。所以做了過濾。
boss直聘反爬蟲厲害,檢測到了就是封ip,24小時,期間也用tor搭建了匿名代理,但是太慢。也自己搭建了幾個http代理,但是都被封了,沒辦法,只有笨方法,爬慢點(sleep ),讓程式認為是正常人在瀏覽。定時爬取的任務交給定時任務:每天10點和晚上22點各爬一次。
好了廢話不多說了。先上圖介紹下實現的。
一週職位釋出次數趨勢
上圖是一週釋出職位的趨勢圖,可以看到,最近應該是招聘淡季,每天最多不超過40個職位,也可能是因為boss直聘釋出少的原因。資料我過濾了標題中,不是PHP的職位,搜出來的PHP,只要是jd中含有php,都在搜尋列表,所以我過濾掉了那些資訊。可能會遺漏一些,比如標題是架構師等的職位。這些比較少。每週更新職位資訊,基本上都是這種趨勢圖。大家投簡歷可以在周2、3、4投遞!
工作年限分析
上圖就是工作年限的繪圖結果,可以看出,基本上市場上需要的還是3-5年的和1-3年的開發者比較多,還是年輕好吧。還年輕的小夥伴,要加油了。年輕就是資本,可不要枉費哦。過了5年的小夥伴,也不要沮喪,畢竟還是有一部分份額的。雖然少了點!但是10年以上的,就少了,估計都是管理層了!
工作年限和薪資比例
從上圖可以看到,3-5年的平均薪資在18000左右,5-10年的平均薪資在23000. 以後跳槽的時候,可以根據這個價格,作為參考,以免得自己吃虧。10年以上的需求少,只有幾個,平均薪資也不是特別高。1-3年和3-5年 這個區間增長的薪資比較快。還在這個區間的小夥伴要加油,實現自己的價值!
學歷分析
上圖可知,基本上招聘的資訊本科佔了59%,專科佔了33%. 說明下,學歷不限的情況,我把一些職位中要求是高中,中專,技校等全劃到學歷不限了。碩士生招的少,可能碩士寫程式的比較少了吧。也有可能碩士都不會在網上求職的吧。 學歷在我國是一個敲門磚,所以一個好學歷,,一個本科讓你可以多20%個機會。所以機會不等人,沒有的,可以抓緊考一個!
學歷和薪資分析
可以看出來,大專和本科的學歷平均薪資還是差別不大的。也就是在2000左右,而本科和碩士就差別大了。所以呀,多讀書,還是有用的。至少讓你薪資提升不少。
釋出職位最多的公司
想了解下,上海哪些公司最缺人,一直招人。圖中顯示,前兩名遠遠高於後面的。感覺很奇怪,檢視了一下,第一個公司是一家培訓機構(大家懂滴),第二個公司,好像在寶山,成立沒半年,一直招人。
可以看到,騰訊也一直在招人,感覺自己不錯的小夥伴,可以去試試。騰訊那邊要求(全日制本科),否則過不了HR的。
技術詞雲圖
技術詞雲圖,全部都是從jd中取出來的,使用jieba分詞,然後最後彙總了下。圖中加黑色的都是出現頻率比較高的技術詞語。php、mysql、linux、JavaScript、css。php 三大框架(laravel、yii、thinkphp)、redis出現最多的。laravel出現的頻率次數,僅次於 PHP、Linux、Mysql。所以用laravel的還是很多的。
技術詞語,選擇是全部英文的,裡面可能出現了一些的不是技術的詞語,比如vip等,詞語全部做了小寫顯示,比如PHP,全部彙總到php中。html5則只取html片語。
總結
最後放下專案的地址
https://github.com/xianyunyh/spider_job
線上預覽的地址
http://yehe.37he.cn/job/#/weekline
使用到的技術棧:
- 爬蟲採用的python的scrapy框架、分詞用的jieba分詞、pymongo庫、pyquery庫、redis
- 資料儲存儲存在mongodb中。
- 前端寫了兩版。第一版用的boostrap+jquery。第二版用的Vue。用了vue的 圖表用的是v-charts、詞雲圖 d3.js
- 後端介面,用的PHP寫的,因為寫的快,就沒用框架,直接加了一個mongodb/mondodb的擴充。單檔案寫的。後期可以會改寫。會增加其他的介面
資料只爬了兩週左右可能資料有點少,結果僅供參考! 爬蟲中也提供了51job的爬蟲,lagou的爬蟲,智聯的爬蟲,有興趣的可以去爬其他網站的。然後對比下。
未來這個專案可能會做些什麼呢?可能會做一個查詢的東西,選擇各大網站,對應薪資範圍,顯示對應的資料,或者訂閱最近的職位資訊,一鍵投遞,boss直聘自動回覆等。啊哈哈,嘗試寫個職位匹配的演算法,推薦職位資訊,
如果你有有意思的idea,可以給我留言,我看能不能實現!