從招聘網看Python就業前景
1.資料採集
事情的起源是這樣的,某個風和日麗的下午… 習慣性的開啟知乎準備劃下水,看到一個問題剛好邀請回答
於是就萌生了採集下某招聘網站Python崗位招聘的資訊,看一下目前的薪水和崗位分佈,說幹就幹。
先說下資料採集過程中遇到的問題,首先請求頭是一定要偽裝的,否則第一步就會給你彈出 你的請求太頻繁,請稍後再試,其次網站具有多重反爬策略,解決方案是每次先獲取session然後更新我們的session進行抓取,最後拿到了想要的資料。
Chrome瀏覽器右鍵檢查檢視
network,找到連結
https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false
可以看到返回的資料正是頁面的Python招聘詳情,於是我直接開啟發現直接提示
{"status":false,"msg":"您操作太頻繁,請稍後再訪問","clientIp":"124.77.161.207","state":2402}
,機智的我察覺到事情並沒有那麼簡單
如果你依然在程式設計的世界裡迷茫,可以加入我們的Python學習扣qun:784758214,看看前輩們是如何學習的。交流經驗。從基礎的python指令碼到web開發、爬蟲、django、資料探勘等,零基礎到專案實戰的資料都有整理。送給每一位python的小夥伴!分享一些學習的方法和需要注意的小細節,點選加入我們的
python學習者聚集地
真正的較量才剛剛開始,我們先來分析下請求的報文,
可以看到請求是以
post
的方式傳遞的,同時傳遞了引數
datas = { 'first': 'false', 'pn': x, 'kd': 'python', }
同時不難發現每次點選下一頁都會同時傳送一條
get
請求
經過探索,發現這個
get
請求和我們
post
請求是一致的,那麼問題就簡單許多,整理一下思路
關鍵詞:
python
**搜尋範圍:**全國 **資料時效:**2019.05.05
在學習過程中有什麼不懂得可以加我的 python學習交流扣扣qun,784758214 群裡有不錯的學習視訊教程、開發工具與電子書籍。 與你分享python企業當下人才需求及怎麼從零基礎學習好python,和學習什麼內容 #!/usr/bin/env python3.4 # encoding: utf-8 """ Created on 19-5-05 @title: '' @author: Xusl """ import json import requests import xlwt import time # 獲取儲存職位資訊的json物件,遍歷獲得公司名、福利待遇、工作地點、學歷要求、工作型別、釋出時間、職位名稱、薪資、工作年限 def get_json(url, datas): my_headers = { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36", "Referer": "https://www.lagou.com/jobs/list_Python?city=%E5%85%A8%E5%9B%BD&cl=false&fromSearch=true&labelWords=&suginput=", "Content-Type": "application/x-www-form-urlencoded;charset = UTF-8" } time.sleep(5) ses = requests.session() # 獲取session ses.headers.update(my_headers) # 更新 ses.get("https://www.lagou.com/jobs/list_python?city=%E5%85%A8%E5%9B%BD&cl=false&fromSearch=true&labelWords=&suginput=") content = ses.post(url=url, data=datas) result = content.json() info = result['content']['positionResult']['result'] info_list = [] for job in info: information = [] information.append(job['positionId']) # 崗位對應ID information.append(job['city']) # 崗位對應城市 information.append(job['companyFullName']) # 公司全名 information.append(job['companyLabelList']) # 福利待遇 information.append(job['district']) # 工作地點 information.append(job['education']) # 學歷要求 information.append(job['firstType']) # 工作型別 information.append(job['formatCreateTime']) # 釋出時間 information.append(job['positionName']) # 職位名稱 information.append(job['salary']) # 薪資 information.append(job['workYear']) # 工作年限 info_list.append(information) # 將列表物件進行json格式的編碼轉換,其中indent引數設定縮排值為2 # print(json.dumps(info_list, ensure_ascii=False, indent=2)) # print(info_list) return info_list def main(): page = int(input('請輸入你要抓取的頁碼總數:')) # kd = input('請輸入你要抓取的職位關鍵字:') # city = input('請輸入你要抓取的城市:') info_result = [] title = ['崗位id', '城市', '公司全名', '福利待遇', '工作地點', '學歷要求', '工作型別', '釋出時間', '職位名稱', '薪資', '工作年限'] info_result.append(title) for x in range(1, page+1): url = 'https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false' datas = { 'first': 'false', 'pn': x, 'kd': 'python', } try: info = get_json(url, datas) info_result = info_result + info print("第%s頁正常採集" % x) except Exception as msg: print("第%s頁出現問題" % x) # 建立workbook,即excel workbook = xlwt.Workbook(encoding='utf-8') # 建立表,第二引數用於確認同一個cell單元是否可以重設值 worksheet = workbook.add_sheet('lagouzp', cell_overwrite_ok=True) for i, row in enumerate(info_result): # print(row) for j, col in enumerate(row): # print(col) worksheet.write(i, j, col) workbook.save('lagouzp.xls') if __name__ == '__main__': main()
當然儲存於excel當然是不夠的,之前一直用
matplotlib
做資料視覺化,這次換個新東西
pyecharts
。
pyecharts是一款將python與echarts結合的強大的資料視覺化工具,包含多種圖表
- Bar(柱狀圖/條形圖)
- Bar3D(3D 柱狀圖)
- Boxplot(箱形圖)
- EffectScatter(帶有漣漪特效動畫的散點圖)
- Funnel(漏斗圖)
- Gauge(儀表盤)
- Geo(地理座標系)
- Graph(關係圖)
- HeatMap(熱力圖)
- Kline(K線圖)
- Line(折線/面積圖)
- Line3D(3D 折線圖)
- Liquid(水球圖)
- Map(地圖)
- Parallel(平行座標系)
- Pie(餅圖)
- Polar(極座標系)
- Radar(雷達圖)
- Sankey(桑基圖)
- Scatter(散點圖)
- Scatter3D(3D 散點圖)
- ThemeRiver(主題河流圖)
- WordCloud(詞雲圖)
使用者自定義
- Grid 類:並行顯示多張圖
- Overlap 類:結合不同型別圖表疊加畫在同張圖上
- Page 類:同一網頁按順序展示多圖
- Timeline 類:提供時間線輪播多張圖
另外需要注意的是從版本0.3.2 開始,為了縮減專案本身的體積以及維持 pyecharts 專案的輕量化執行,pyecharts 將不再自帶地圖 js 檔案。如使用者需要用到地圖圖表(Geo、Map),可自行安裝對應的地圖檔案包。
- 全球國家地圖: echarts-countries-pypkg (1.9MB): 世界地圖和 213 個國家,包括中國地圖
- 中國省級地圖: echarts-china-provinces-pypkg (730KB):23 個省,5 個自治區
- 中國市級地圖: echarts-china-cities-pypkg (3.8MB):370 箇中國城市
也可以使用命令進行安裝
pip install echarts-countries-pypkg pip install echarts-china-provinces-pypkg pip install echarts-china-cities-pypkg
- 各城市招聘數量
from pyecharts import Bar city_nms_top10 = ['北京', '上海', '深圳', '成都', '杭州', '廣州', '武漢', '南京', '蘇州', '鄭州', '天津', '西安', '東莞', '珠海', '合肥', '廈門', '寧波', '南寧', '重慶', '佛山', '大連', '哈爾濱', '長沙', '福州', '中山'] city_nums_top10 = [149, 95, 77, 22, 17, 17, 16, 13, 7, 5, 4, 4, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1] bar = Bar("Python崗位", "各城市數量") bar.add("數量", city_nms, city_nums, is_more_utils=True) # bar.print_echarts_options() # 該行只為了列印配置項,方便除錯時使用 bar.render('Python崗位各城市數量.html') # 生成本地 HTML 檔案
- 地圖分佈展示(這個場景意義不大,不過多分析)
在學習過程中有什麼不懂得可以加我的 python學習交流扣扣qun,784758214 群裡有不錯的學習視訊教程、開發工具與電子書籍。 與你分享python企業當下人才需求及怎麼從零基礎學習好python,和學習什麼內容 from pyecharts import Geo city_datas = [('北京', 149), ('上海', 95), ('深圳', 77), ('成都', 22), ('杭州', 17), ('廣州', 17), ('武漢', 16), ('南京', 13), ('蘇州', 7), ('鄭州', 5), ('天津', 4), ('西安', 4), ('東莞', 3), ('珠海', 2), ('合肥', 2), ('廈門', 2), ('寧波', 1), ('南寧', 1), ('重慶', 1), ('佛山', 1), ('大連', 1), ('哈爾濱', 1), ('長沙', 1), ('福州', 1), ('中山', 1)] geo = Geo("Python崗位城市分佈地圖", "資料來源拉勾", title_color="#fff", title_pos="center", width=1200, height=600, background_color='#404a59') attr, value = geo.cast(city_datas) geo.add("", attr, value, visual_range=[0, 200], visual_text_color="#fff", symbol_size=15, is_visualmap=True) geo.render("Python崗位城市分佈地圖_scatter.html") geo = Geo("Python崗位城市分佈地圖", "資料來源拉勾", title_color="#fff", title_pos="center", width=1200, height=600, background_color='#404a59') attr, value = geo.cast(city_datas) geo.add("", attr, value, type="heatmap", visual_range=[0, 10], visual_text_color="#fff", symbol_size=15, is_visualmap=True) geo.render("Python崗位城市分佈地圖_heatmap.html")
- 各個城市招聘情況
from pyecharts import Pie city_nms_top10 = ['北京', '上海', '深圳', '成都', '廣州', '杭州', '武漢', '南京', '蘇州', '鄭州'] city_nums_top10 = [149, 95, 77, 22, 17, 17, 16, 13, 7, 5] pie = Pie() pie.add("", city_nms_top10, city_nums_top10, is_label_show=True) # pie.show_config() pie.render('Python崗位各城市分佈餅圖.html')
北上深的崗位明顯碾壓其它城市,這也反映出為什麼越來越多的it從業人員畢業以後相繼奔赴一線城市,除了一線城市的薪資高於二三線這個因素外,還有一個最重要的原因 供需關係,因為一線崗位多,可選擇性也就比較高,反觀二三線的局面,很有可能你跳個幾次槽,發現同行業能呆的公司都待過了…
- 薪資範圍
由此可見,python的崗位薪資多數在10k~20k,想從事Python行業的可以把工作年限和薪資結合起來參考一下。
- 學歷要求 + 工作年限
從工作年限來看,1-3年或者3-5年工作經驗的招聘比較多,而應屆生和一年以下的寥寥無幾,對實習生實在不太友好,學歷也普遍要求本科,多數公司都很重視入職人員學歷這點毋容置疑,雖然學歷不代表一切,但是對於一個企業來說,想要短時間內判斷一個人的能力,最快速有效的方法無疑是從學歷入手。學歷第一關,面試第二關。
但是,這不代表學歷不高的人就沒有好的出路,現在的大學生越來越多,找工作也越來越難,競爭越來越激烈,即使具備高學歷,也不能保證你一定可以找到滿意的工作,天道酬勤, 特別是it這個行業,知識的迭代,比其他行業來的更頻密。不斷學習,擴充自己學習的廣度和深度,才是最正確的決定。
就業寒冬來臨,我們需要的是理性客觀的看待,而不是盲目地悲觀或樂觀。從以上資料分析,如果愛好Python,仍舊可以入坑,不過要注意一個標籤有工作經驗,就算沒有工作經驗,自己在學習Python的過程中一定要嘗試獨立去做一個完整的專案,爬蟲也好,資料分析也好,亦或者是開發,都要嘗試獨立去做一套系統,在這個過程中培養自己思考和解決問題的能力。持續不斷的學習,才是對自己未來最好的投資,也是度過寒冬最正確的姿勢。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913713/viewspace-2658567/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 就業寒冬,從拉勾招聘看Python就業前景就業Python
- 從事UI設計就業前景好嗎?UI就業
- 學習網路安全有哪些就業方向?網路安全就業前景!就業
- 最新的Python就業前景分析一覽表Python就業
- Python發展前景如何有哪些就業方向Python就業
- Python人工智慧就業前景怎麼樣?Python人工智慧就業
- “網課一代”就業前景調查就業
- 學Python前景如何?參加Python培訓是否好就業?Python就業
- Python就業前景好不好?學Python好找工作嗎?Python就業
- 為什麼Python這麼火,就業前景如何?Python就業
- 普通人學Python有用嗎?就業前景如何?Python就業
- Linux就業前景如何?學完Linux從事哪些工作?Linux就業
- 看完秒懂!Python就業前景及發展趨勢!Python就業
- Python就業前景好嗎?薪資待遇怎麼樣?Python就業
- Python這三個真相:中年危機/就業前景/崗位薪資,程式設計師需看!Python就業程式設計師
- Java工程師就業前景分析Java工程師就業
- 學Python從業前景如何?工作機會多嗎?Python
- Python語言的前景、方向、優缺點、就業情況分析Python就業
- python工程師的就業前景如何?為什麼這麼多人喜歡python?Python工程師就業
- 學習Linux就業前景如何?五大就業崗位!Linux就業
- 2020Python就業前景如何?這套教程帶你迅速入門!Python就業
- Java和Python哪個就業前景好?初學者如何選擇?JavaPython就業
- 0基礎如何學習Python課程?就業前景怎麼樣?Python就業
- UI學習之後就業前景如何?UI就業
- iOS培訓就業前景分析詳解iOS就業
- web前端的就業前景好不好Web前端就業
- 網路安全就業前景好不好?0基礎可以學嗎?就業
- Python在中國的發展前景怎麼樣?有哪些就業方向?Python就業
- 從薪資、需求來分析,武漢Java開發就業前景好不好?Java就業
- 在學web前端如何求職就業 Web前端就業前景怎樣Web前端求職就業
- Python學習後好就業嗎?Python就業Python就業
- Java就業前景怎麼樣?值得學嗎?Java就業
- 大資料就業前景好嗎 鄭州大資料就業怎麼樣大資料就業
- 2019年web前端就業前景和工資待遇Web前端就業
- Linux的就業前景如何?linux運維學習Linux就業運維
- Web前端是做什麼的?就業前景如何?Web前端就業
- 學雲端計算與大資料前景如何?就業又該何去何從?大資料就業
- 從三點解讀,入行Java從業前景如何?Java