亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

我用Python又爬蟲了拉鉤招聘,給你們看看2019市場行情

本文轉(zhuǎn)載自公號Python攻城獅,作者:Python攻城獅

我用Python又爬蟲了拉鉤招聘,給你們看看2019市場行情

數(shù)據(jù)采集

事情的起源是這樣的,某個風和日麗的下午… 習慣性的打開知乎準備劃下水,看到一個問題剛好邀請回答

我用Python又爬蟲了拉鉤招聘,給你們看看2019市場行情

于是就萌生了采集下某招聘網(wǎng)站Python崗位招聘的信息,看一下目前的薪水和崗位分布,說干就干。

先說下數(shù)據(jù)采集過程中遇到的問題,首先請求頭是一定要偽裝的,否則第一步就會給你彈出你的請求太頻繁,請稍后再試,其次網(wǎng)站具有多重反爬策略,解決方案是每次先獲取session然后更新我們的session進行抓取,最后拿到了想要的數(shù)據(jù)。

Chrome瀏覽器右鍵檢查查看network,找到鏈接https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false?

我用Python又爬蟲了拉鉤招聘,給你們看看2019市場行情

可以看到返回的數(shù)據(jù)正是頁面的Python招聘詳情,于是我直接打開發(fā)現(xiàn)直接提示{"status":false,"msg":"您操作太頻繁,請稍后再訪問","clientIp":"124.77.161.207","state":2402},機智的我察覺到事情并沒有那么簡單

我用Python又爬蟲了拉鉤招聘,給你們看看2019市場行情

真正的較量才剛剛開始,我們先來分析下請求的報文,

我用Python又爬蟲了拉鉤招聘,給你們看看2019市場行情
我用Python又爬蟲了拉鉤招聘,給你們看看2019市場行情

可以看到請求是以post的方式傳遞的,同時傳遞了參數(shù)

datas?=?{????????????'first':?'false',????????????'pn':?x,????????????'kd':?'Python',????????}

同時不難發(fā)現(xiàn)每次點擊下一頁都會同時發(fā)送一條get請求

我用Python又爬蟲了拉鉤招聘,給你們看看2019市場行情
這里我點了兩次,出現(xiàn)兩條get請求
我用Python又爬蟲了拉鉤招聘,給你們看看2019市場行情

經(jīng)過探索,發(fā)現(xiàn)這個get請求和我們post請求是一致的,那么問題就簡單許多,整理一下思路

我用Python又爬蟲了拉鉤招聘,給你們看看2019市場行情

關(guān)鍵詞:Python?
搜索范圍:全國
數(shù)據(jù)時效:2019.05.05

#!/usr/bin/env?Python3.4#?encoding:?utf-8"""Created?on?19-5-05@title:?''@author:?Xusl"""import?jsonimport?requestsimport?xlwtimport?time#?獲取存儲職位信息的json對象,遍歷獲得公司名、福利待遇、工作地點、學歷要求、工作類型、發(fā)布時間、職位名稱、薪資、工作年限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'])??#?崗位對應(yīng)ID????????information.append(job['city'])??#?崗位對應(yīng)城市????????information.append(job['companyFullName'])??#?公司全名????????information.append(job['companyLabelList'])??#?福利待遇????????information.append(job['district'])??#?工作地點????????information.append(job['education'])??#?學歷要求????????information.append(job['firstType'])??#?工作類型????????information.append(job['formatCreateTime'])??#?發(fā)布時間????????information.append(job['positionName'])??#?職位名稱????????information.append(job['salary'])??#?薪資????????information.append(job['workYear'])??#?工作年限????????info_list.append(information)????????#?將列表對象進行json格式的編碼轉(zhuǎn)換,其中indent參數(shù)設(shè)置縮進值為2????????#?print(json.dumps(info_list,?ensure_ascii=False,?indent=2))????#?print(info_list)????return?info_listdef?main():????page?=?int(input('請輸入你要抓取的頁碼總數(shù):'))????#?kd?=?input('請輸入你要抓取的職位關(guān)鍵字:')????#?city?=?input('請輸入你要抓取的城市:')????info_result?=?[]????title?=?['崗位id',?'城市',?'公司全名',?'福利待遇',?'工作地點',?'學歷要求',?'工作類型',?'發(fā)布時間',?'職位名稱',?'薪資',?'工作年限']????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頁出現(xiàn)問題"?%?x)????????????????#?創(chuàng)建workbook,即excel????????workbook?=?xlwt.Workbook(encoding='utf-8')????????#?創(chuàng)建表,第二參數(shù)用于確認同一個cell單元是否可以重設(shè)值????????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()
我用Python又爬蟲了拉鉤招聘,給你們看看2019市場行情
日志記錄
我用Python又爬蟲了拉鉤招聘,給你們看看2019市場行情

當然存儲于excel當然是不夠的,之前一直用matplotlib做數(shù)據(jù)可視化,這次換個新東西pyecharts。

我用Python又爬蟲了拉鉤招聘,給你們看看2019市場行情

了解pyecharts

pyecharts是一款將Python與echarts結(jié)合的強大的數(shù)據(jù)可視化工具,包含多種圖表

  • Bar(柱狀圖/條形圖)
  • Bar3D(3D 柱狀圖)
  • Boxplot(箱形圖)
  • EffectScatter(帶有漣漪特效動畫的散點圖)
  • Funnel(漏斗圖)
  • Gauge(儀表盤)
  • Geo(地理坐標系)
  • Graph(關(guān)系圖)
  • HeatMap(熱力圖)
  • Kline(K線圖)
  • Line(折線/面積圖)
  • Line3D(3D 折線圖)
  • Liquid(水球圖)
  • Map(地圖)
  • Parallel(平行坐標系)
  • Pie(餅圖)
  • Polar(極坐標系)
  • Radar(雷達圖)
  • Sankey(?;鶊D)
  • Scatter(散點圖)
  • Scatter3D(3D 散點圖)
  • ThemeRiver(主題河流圖)
  • WordCloud(詞云圖)

用戶自定義

  • Grid 類:并行顯示多張圖
  • Overlap 類:結(jié)合不同類型圖表疊加畫在同張圖上
  • Page 類:同一網(wǎng)頁按順序展示多圖
  • Timeline 類:提供時間線輪播多張圖

另外需要注意的是從版本0.3.2 開始,為了縮減項目本身的體積以及維持 pyecharts 項目的輕量化運行,pyecharts 將不再自帶地圖 js 文件。如用戶需要用到地圖圖表(Geo、Map),可自行安裝對應(yīng)的地圖文件包。

  1. 全球國家地圖: echarts-countries-pypkg (1.9MB): 世界地圖和 213 個國家,包括中國地圖
  2. 中國省級地圖: echarts-china-provinces-pypkg (730KB):23 個省,5 個自治區(qū)
  3. 中國市級地圖: echarts-china-cities-pypkg (3.8MB):370 個中國城市

也可以使用命令進行安裝

pip?install?echarts-countries-pypkgpip?install?echarts-china-provinces-pypkgpip?install?echarts-china-cities-pypkg
我用Python又爬蟲了拉鉤招聘,給你們看看2019市場行情

數(shù)據(jù)可視化(代碼+展示)

  • 各城市招聘數(shù)量
from?pyecharts?import?Barcity_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崗位",?"各城市數(shù)量")bar.add("數(shù)量",?city_nms,?city_nums,?is_more_utils=True)#?bar.print_echarts_options()?#?該行只為了打印配置項,方便調(diào)試時使用bar.render('Python崗位各城市數(shù)量.html')??#?生成本地?HTML?文件
我用Python又爬蟲了拉鉤招聘,給你們看看2019市場行情
  • 地圖分布展示(這個場景意義不大,不過多分析)
from?pyecharts?import?Geocity_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崗位城市分布地圖",?"數(shù)據(jù)來源拉勾",?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崗位城市分布地圖",?"數(shù)據(jù)來源拉勾",?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")
我用Python又爬蟲了拉鉤招聘,給你們看看2019市場行情
我用Python又爬蟲了拉鉤招聘,給你們看看2019市場行情
  • 各個城市招聘情況
from?pyecharts?import?Piecity_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')
我用Python又爬蟲了拉鉤招聘,給你們看看2019市場行情

北上深的崗位明顯碾壓其它城市,這也反映出為什么越來越多的it從業(yè)人員畢業(yè)以后相繼奔赴一線城市,除了一線城市的薪資高于二三線這個因素外,還有一個最重要的原因供需關(guān)系,因為一線崗位多,可選擇性也就比較高,反觀二三線的局面,很有可能你跳個幾次槽,發(fā)現(xiàn)同行業(yè)能呆的公司都待過了…

  • 薪資范圍
我用Python又爬蟲了拉鉤招聘,給你們看看2019市場行情

由此可見,Python的崗位薪資多數(shù)在10k~20k,想從事Python行業(yè)的可以把工作年限和薪資結(jié)合起來參考一下。

  • 學歷要求 + 工作年限
我用Python又爬蟲了拉鉤招聘,給你們看看2019市場行情

從工作年限來看,1-3年或者3-5年工作經(jīng)驗的招聘比較多,而應(yīng)屆生和一年以下的寥寥無幾,對實習生實在不太友好,學歷也普遍要求本科,多數(shù)公司都很重視入職人員學歷這點毋容置疑,雖然學歷不代表一切,但是對于一個企業(yè)來說,想要短時間內(nèi)判斷一個人的能力,最快速有效的方法無疑是從學歷入手。學歷第一關(guān),面試第二關(guān)。

但是,這不代表學歷不高的人就沒有好的出路,現(xiàn)在的大學生越來越多,找工作也越來越難,競爭越來越激烈,即使具備高學歷,也不能保證你一定可以找到滿意的工作,天道酬勤,特別是it這個行業(yè),知識的迭代,比其他行業(yè)來的更頻密。不斷學習,拓展自己學習的廣度和深度,才是最正確的決定。

就業(yè)寒冬來臨,我們需要的是理性客觀的看待,而不是盲目地悲觀或樂觀。從以上數(shù)據(jù)分析,如果愛好Python,仍舊可以入坑,不過要注意一個標簽有工作經(jīng)驗,就算沒有工作經(jīng)驗,自己在學習Python的過程中一定要嘗試獨立去做一個完整的項目,爬蟲也好,數(shù)據(jù)分析也好,亦或者是開發(fā),都要嘗試獨立去做一套系統(tǒng),在這個過程中培養(yǎng)自己思考和解決問題的能力。持續(xù)不斷的學習,才是對自己未來最好的投資,也是度過寒冬最正確的姿勢。

聲明:文章來源于網(wǎng)絡(luò),侵刪!

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評如潮的Linux云計算運維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓機構(gòu)!