天天看點

Python實戰|騰訊招聘你幹什麼?python可視化告訴你

Python實戰|騰訊招聘你幹什麼?python可視化告訴你
Python實戰|騰訊招聘你幹什麼?python可視化告訴你
Python實戰|騰訊招聘你幹什麼?python可視化告訴你

需求分析

想知道在騰訊上班都要做什麼工作,今天就來分析一下騰訊python招聘的崗位資訊。

我們要擷取的資訊如下:

職位名稱、      
國家、      
城市、      
職位分類、      
職位更新時間、      
職位要求、      

首先我們打開騰訊招聘首頁傳送門:

https://careers.tencent.com/home.html
           

輸入你要查詢的職位情況,咱們這裡以python崗位為例。

Python實戰|騰訊招聘你幹什麼?python可視化告訴你

如下所示找到網站展示url連結:

Python實戰|騰訊招聘你幹什麼?python可視化告訴你

複制連結打開發現此連結為json格式資料集,是以我們第一步先要擷取到這個json格式的資料集,然後循環擷取内部的崗位資訊。

Python實戰|騰訊招聘你幹什麼?python可視化告訴你

發送請求

找到真實連結之後,我們就可以模拟浏覽器通路網站,可以看到我們已經成功的擷取到了此json格式的資料集。

url = f'https://careers.tencent.com/tencentcareer/api/post/Query?timestamp=1623410681974&countryId=&cityId=&bgIds=&productId=&categoryId=&parentCategoryId=&attrId=&keyword=&pageIndex=1&pageSize=10&language=zh-cn&area=cn'

headers= {
    'referer': f'https://careers.tencent.com/search.html?index=1',
    'user-agent': str(UserAgent().random)
}
resp = requests.get(url, headers = headers)
print(resp.json())

'''
{'Code': 200, 'Data': {'Count': 10006, 'Posts': [{'Id': 0, 'PostId': '1237621607640338432', 'RecruitPostId': 58544, 'RecruitPostName': '35933-司法協作經理(南京)', 'CountryName': '中國', 'LocationName': '南京', 'BGName': 'S1', 'ProductName': '', 'CategoryName': '法律與公共政策', 'Responsibility': '研究落實國家網際網路政策和法律法規相關要求,協調業務做好合規工作;\n深入研究涉及網絡犯罪的内在規律和發展趨勢,為保護業務健康發展建立暢通外部溝通管道;\n依據法律法規要求,建立并保持與執法機關的互動視窗,嚴格履行法律賦予的企業義務。\n\n', 'LastUpdateTime': '2021年06月12日', 'PostURL': 'http://careers.tencent.com/jobdesc.html?postId=1237621607640338432', 'SourceID': 1, 'IsCollect': False, 'IsValid': True}, {'Id': 0, 'PostId': '1269571935444934656', 'RecruitPostId': 62560, 'RecruitPostName': 'AQ-内容安全營運經理', 'CountryName': '中國', 'LocationName': '北京', 'BGName': 'S1', 'ProductName': '', 'CategoryName': '法律與公共政策', 'Responsibility': '與相關主管部門、行業組織等建立長期、良好的溝通和合作關系;\n及時了解、研究與公司業務相關的政策監管要求與行業發展趨勢等,協助制定應對政策及方案,有效溝通相關情況,保障産品安全營運,推動行業健康發展;\n正确、及時傳導政策監管要求,協助拟定解決方案,加強内部産品協同,降低安全營運風險。\n\n', 'LastUpdateTime': '2021年06月12日', 'PostURL': 'http://careers.tencent.com/jobdesc.html?postId=1269571935444934656', 'SourceID': 1, 'IsCollect': False, 'IsValid': True}, {'Id': 0, 'PostId': '1303145399837532160', 'RecruitPostId': 65853, 'RecruitPostName': '44327-微信安全營運經理(廣州)', 'CountryName': '中國', 'LocationName': '廣州', 'BGName': 'S1', 'ProductName': '微信', 'CategoryName': '法律與公共政策', 'Responsibility': '從法律法規及政策要求的角度出發,全流程跟進微信産品功能的開發設計,并根據産品特點與發展情況,動态評估安全風險,提供解決方案,對營運效果負責,保障産品可持續營運;\n協助相關團隊應對、處理涉微信平台的安全突發或應急事件,推進完善營運規則及工作機制。', 'LastUpdateTime': '2021年06月12日', 'PostURL': 'http://careers.tencent.com/jobdesc.html?postId=1303145399837532160', 'SourceID': 1, 'IsCollect': False, 'IsValid': True}, {'Id': 0, 'PostId': '1303145400231796736', 'RecruitPostId': 65854, 'RecruitPostName': '44327-微信态勢分析師(廣州)', 'CountryName': '中國', 'LocationName': '廣州', 'BGName': 'S1', 'ProductName': '微信', 'CategoryName': '法律與公共政策', 'Responsibility': '促進微信平台正向影響力合作生态,根據産品特征、政策法規要求、行業生态等開展分析,并推動項目策劃與執行,持續提升平台正向價值;\n建構态勢感覺模型及分析方法,為風險治理整體解決方案提供專業參考。', 'LastUpdateTime': '2021年06月12日', 'PostURL': 'http://careers.tencent.com/jobdesc.html?postId=1303145400231796736', 'SourceID': 1, 'IsCollect': False, 'IsValid': True}, {'Id': 0, 'PostId': '1303145401032908800', 'RecruitPostId': 65856, 'RecruitPostName': '44327-微信安全風控經理(廣州)', 'CountryName': '中國', 'LocationName': '廣州', 'BGName': 'S1', 'ProductName': '微信', 'CategoryName': '法律與公共政策', 'Responsibility': '對侵害微信産品業務的違法違規行為開展體系化研究,為技術及營運團隊提供綜合治了解決方案,保護平台安全;\n對平台存在的各類風險問題進行評估分析,及時發現安全風險并制定、落實相應解決方案。', 'LastUpdateTime': '2021年06月12日', 'PostURL': 'http://careers.tencent.com/jobdesc.html?postId=1303145401032908800', 'SourceID': 1, 'IsCollect': False, 'IsValid': True}, {'Id': 0, 'PostId': '1303145401775300608', 'RecruitPostId': 65858, 'RecruitPostName': '44327-微信安全合規經理(廣州)', 'CountryName': '中國', 'LocationName': '廣州', 'BGName': 'S1', 'ProductName': '微信', 'CategoryName': '法律與公共政策', 'Responsibility': '深入了解和跟進網際網路行業監管動态,圍繞資訊安全、資料安全、個人隐私等領域法律法規、政策标準,分析對微信平台的合規影響,協助制定和完善合規營運方案;\n推動微信業務的合規評估與風險分析,及時發現問題并制定解決方案,做好溝通關聯并推進實施;\n建立安全合規機制,跟進合規要求的落實進步,并協調推動優化整改。', 'LastUpdateTime': '2021年06月12日', 'PostURL': 'http://careers.tencent.com/jobdesc.html?postId=1303145401775300608', 'SourceID': 1, 'IsCollect': False, 'IsValid': True}, {'Id': 0, 'PostId': '1351485887594110976', 'RecruitPostId': 72034, 'RecruitPostName': '44329-司法協作經理(重慶)', 'CountryName': '中國', 'LocationName': '重慶', 'BGName': 'S1', 'ProductName': '', 'CategoryName': '法律與公共政策', 'Responsibility': '研究落實國家網際網路政策和法律法規相關要求,協調業務做好合規工作;\n深入研究涉及網絡犯罪的内在規律和發展趨勢,為保護業務健康發展建立暢通外部溝通管道;\n依據法律法規要求,建立并保持與執法機關的互動視窗,嚴格履行法律賦予的企業義務。\n\n', 'LastUpdateTime': '2021年06月12日', 'PostURL': 'http://careers.tencent.com/jobdesc.html?postId=1351485887594110976', 'SourceID': 1, 'IsCollect': False, 'IsValid': True}, {'Id': 0, 'PostId': '1403534865667727360', 'RecruitPostId': 79061, 'RecruitPostName': '28601-微信支付交通行業産品策劃經理', 'CountryName': '中國', 'LocationName': '深圳', 'BGName': 'WXG', 'ProductName': '', 'CategoryName': '産品', 'Responsibility': '1、負責微信支付停車場景的産品策劃工作,為車主使用者帶來卓越的停車體驗;\n2、能夠深刻了解停車行業的營運模式和商業目标;\n3、挖掘商戶具體訴求和痛點,通過針對性的行業解決方案,提升商戶服務能力; \n4、結合并更新微信産品能力,聯合行業商戶、生态服務商等相關合作夥伴,結合商戶側的商業目标和營運訴求,不斷為行業創造價值;\n5、挖掘騰訊内外各業務及行業資源,不斷探索産品化解決方案,并推動跨團隊合作,助力行業發展。', 'LastUpdateTime': '2021年06月12日', 'PostURL': 'http://careers.tencent.com/jobdesc.html?postId=0', 'SourceID': 1, 'IsCollect': False, 'IsValid': True}, {'Id': 0, 'PostId': '1372383269839970304', 'RecruitPostId': 74940, 'RecruitPostName': '21085-FPS電競品牌經理', 'CountryName': '中國', 'LocationName': '深圳', 'BGName': 'IEG', 'ProductName': '騰訊遊戲', 'CategoryName': '營銷與公關', 'Responsibility': '負責《穿越火線》及《穿越火線:槍戰王者》國際/職業/大衆賽事體系及品牌搭建;\n負責賽事及賽事品牌政策策劃及落地執行,包括但不僅限于賽事核心創意、素材、傳播及内容、賽事落地活動把控及執行等工作; \n負責賽事及營銷工作中的資源統籌,不斷提升産品及賽事的影響力。', 'LastUpdateTime': '2021年06月12日', 'PostURL': 'http://careers.tencent.com/jobdesc.html?postId=1372383269839970304', 'SourceID': 1, 'IsCollect': False, 'IsValid': True}, {'Id': 0, 'PostId': '1371703908962934784', 'RecruitPostId': 74791, 'RecruitPostName': '21089-英雄聯盟手遊内容營運', 'CountryName': '中國', 'LocationName': '深圳', 'BGName': 'IEG', 'ProductName': '騰訊遊戲', 'CategoryName': '内容', 'Responsibility': '負責制定手遊作者引入政策、專項扶持政策,規劃頭部作者培養方案,進行優質内容引入、管理和分發,搭建健康穩健的手遊内容創作生态;\n針對不同的宣發節點需求,制定特色内容營運和發行計劃,助力整體産品發行。 同時持續完善和豐富整個内容生态,提升内容影響力;\n負責手遊在内部社群以及外部平台的内容合作,搭建優質的PGC和PUGC内容生産機制以及管道分發能力,打造精品标杆内容和熱門專欄,打造爆款内容;\n持續拓展深度合作的手遊内容作者以及機構數量,通過設定激勵機制、搭建支援體系、制定推廣計劃、強化平台合作等方式,提升社群及全平台手遊活躍作者數,進而提升整體内容品質;', 'LastUpdateTime': '2021年06月12日', 'PostURL': 'http://careers.tencent.com/jobdesc.html?postId=1371703908962934784', 'SourceID': 1, 'IsCollect': False, 'IsValid': True}]}}
'''

           

解析頁面

接下來我們就要得到我們需要的資料,我們需求前面已經提到過了職位名稱、國家、城市、職位分類、職位更新時間、職位要求。

這些資訊都在json資料面的posts下面。是以接下來如何get到posts進而擷取到每一個職位的資訊。

Python實戰|騰訊招聘你幹什麼?python可視化告訴你
 # 擷取所有的職位資訊
jobs = resp.json()['Data']['Posts'] 
        
# 擷取每一個崗位的内部資訊
for job in jobs:
    post_name = job['RecruitPostName']  # 職位名稱
    country_name = job['CountryName']  # 國家
    loc_name = job['LocationName']  # 城市
    category_name = job['CategoryName']  # 職位分類
    last_up_time = job['LastUpdateTime']  # 職位更新時間
    responsibility = job['Responsibility']  # 職位要求
'''
------------------正在爬取第1頁資料------------------
38965-遊戲社群視覺設計師 中國 深圳 設計 2021年06月12日 · 負責遊戲社群産品UI、動效及營運相關設計,并結合回報進行持續優化提升;
· 參與前期推導、設定整體視覺風格并執行跟進産品視覺呈現效果;
· 參與産品的創意設計和動态DEMO的實作;
· 參與團隊的專業化建設和知識傳播
-----正在采集第1條資料-----
TEG05-風控資料挖掘工程師 中國 深圳 技術 2021年06月12日 将機器學習等資料挖掘手段與流量風控、營銷風控場景相結合,建立各類模型,服務流量、營銷風控等業務場景;
基于海量的業務流量資料,應用業内成熟模組化方案進行模組化、疊代,提升風控技術水準和服務效果,并探索前沿算法的落地應用;
結合樣本研究底層資料進行變量挖掘、特征組合,不斷加入新的資料源以及變量提升模型性能;
結合業務場景進行流量風控畫像,豐富刻畫角度,提升準确率、覆寫率。
-----正在采集第2條資料-----
CB-進階翻譯 中國 深圳 行政支援 2021年06月12日 Your key job responsibilities include, but are not limited to:

1. In order to build the company's global HR system, translate HR related systems, processes, tools and documents (mostly Chinese to English translations), undertake interpretation and other tasks during key meetings
2. Review and polish internal HR-related documents written in English
3. Receive and manage translated resources from third parties

-----正在采集第3條資料-----
15569-QQ飛車手遊-進階系統策劃 中國 深圳 産品 2021年06月12日 負責qq飛車手遊系統設計,包含核心子產品,目标系統、社交系統及各種功能系統;
系統設計過程中,關注功能、規則、表格設計、互動體驗和視覺、聽覺回報;
設計過程中擁有一定的創新次元能力,以及擁有獨立的思維邏輯和設計方法;
系統設計中對基礎玩家情緒和情感有一定的了解和認知,有一定的細節設計;
跟進、分析統計資料,根據資料和回報來制定後續優化方案并跟進具體開發;
關注自身産品以及同類競品的營運狀況,從使用者側了解使用者痛點并解決問題。
-----正在采集第4條資料-----
15569-QQ飛車端遊-系統策劃 中國 深圳 産品 2021年06月12日 負責qq飛車端遊系統設計,包含核心子產品,目标系統、社交系統及各種功能系統;
系統設計過程中,關注功能、規則、表格設計、互動體驗和視覺、聽覺回報;
設計過程中擁有一定的創新次元能力,以及擁有獨立的思維邏輯和設計方法;
系統設計中對基礎玩家情緒和情感有一定的了解和認知,有一定的細節設計;
跟進、分析統計資料,根據資料和回報來制定後續優化方案并跟進具體開發;
關注自身産品以及同類競品的營運狀況,從使用者側了解使用者痛點并解決問題。

-----正在采集第5條資料-----
21309-騰訊教育--騰訊課堂産品營運(深圳) 中國 深圳 營銷與公關 2021年06月12日 1、負責站内資源管理及營運工作,包含站内廣告資源、站内營運位排期等。
2、負責頻道産品營運設計,梳理對應子產品的産品功能和業務目标設定,通過有效的營運手段,維護産品生态,主導營運規劃和設計方案的有效落地。
3、根據節慶營銷規劃,整合資源,以項目制形式協調跨部門合作,完成營銷活動的策劃和執行。
4、根據資源資料及使用者分析,了解C端使用者需求,通過比對使用者需求與平台資源實作場景資料增長。
-----正在采集第6條資料-----
TEG04-騰訊工蜂運維開發工程師(深圳) 中國 深圳 技術 2021年06月12日 負責容器叢集的容量規劃、模式改進、性能分析和優化等;
負責容器叢集自動化運維支撐平台的設計和開發;
建立資料營運、故障管理體系,實作自動化、智能化運維,促進問題快速發現定位解決;

-----正在采集第7條資料-----
TEG04-騰訊工蜂SRE工程師(深圳) 中國 深圳 技術 2021年06月12日 負責容器叢集的容量規劃、模式改進、性能分析和優化等;
負責容器叢集自動化運維支撐平台的設計和開發;
建立資料營運、故障管理體系,實作自動化、智能化運維,促進問題快速發現定位解決;

-----正在采集第8條資料-----
TEG04-騰訊樂享視覺設計師(深圳) 中國 深圳 設計 2021年06月12日 完成騰訊樂享平台、騰訊KM平台的産品體驗和UI界面設計工作;
充分了解産品需求,與策劃溝通界面風格以及互動體驗,與研發溝通界面的優化方案;
參與整個設計過程中的評審,負責視覺還原走查,監督産品視覺的實作品質;
有良好的視覺風格的把控能力,能平衡把握現有産品在使用者體驗上的統一性。

-----正在采集第9條資料-----
35933-安全合規業務經理(深圳) 中國 深圳 法律與公共政策 2021年06月12日 根據法律、法規、标準等合規要求,梳理各類業務風險,發現業務安全合規問題;
推動合規風險評估、治理及整改,建立安全合規機制,制定和落實安全合規措施;
研究安全法規、政策及标準發展趨勢,保障公司業務安全健康發展。

-----正在采集第10條資料-----
------------------正在爬取第2頁資料------------------
35933-司法協作經理(南京) 中國 南京 法律與公共政策 2021年06月12日 研究落實國家網際網路政策和法律法規相關要求,協調業務做好合規工作;
深入研究涉及網絡犯罪的内在規律和發展趨勢,為保護業務健康發展建立暢通外部溝通管道;
依據法律法規要求,建立并保持與執法機關的互動視窗,嚴格履行法律賦予的企業義務。
'''
           

儲存資料

我們已經成功擷取到了單頁資料,接下來我們将這些資料儲存到excel中便于後續可視化分析。

  ws = op.Workbook()
  wb = ws.create_sheet(index=0)

  wb.cell(row=1, column=1, value='職位名稱')
  wb.cell(row=1, column=2, value='國家')
  wb.cell(row=1, column=3, value='城市')
  wb.cell(row=1, column=4, value='職位分類')
  wb.cell(row=1, column=5, value='職位更新時間')
  wb.cell(row=1, column=6, value='職位要求')
  ws.save('騰訊職位.xlsx')
           
Python實戰|騰訊招聘你幹什麼?python可視化告訴你

但是我們的目的是擷取全部的資料1751個職位,是以我們要使用for循環來擷取全部資料。

    for page in range(1, 175+1):
        url = f'https://careers.tencent.com/tencentcareer/api/post/Query?timestamp=1623410681974&countryId=&cityId=&bgIds=&productId=&categoryId=&parentCategoryId=&attrId=&keyword=&pageIndex={page}&pageSize=10&language=zh-cn&area=cn'
           
Python實戰|騰訊招聘你幹什麼?python可視化告訴你

可視化展示

這一部分我用詞雲來展示騰訊對職位的要求,更加直覺的展示職位需求。

  rcv_data = pd.read_excel('騰訊職位.xlsx')
  c_title = rcv_data['職位要求'].tolist()
  #觀影評論詞雲圖
  wordlist = jieba.cut(''.join(c_title))
  result = ' '.join(wordlist)
  pic = 'img.jpg'
  gen_stylecloud(text=result,
                  icon_name='fas fa-paw',
                  font_path='msyh.ttc',
                  background_color="white",
                  output_name=pic)
  print('繪圖成功!')
           
Python實戰|騰訊招聘你幹什麼?python可視化告訴你
Python實戰|騰訊招聘你幹什麼?python可視化告訴你

我們再用餅圖和柱狀圖來展示一下騰訊招聘都有哪些職位,各個職位對人員需求情況。咱們先用pandas讀取資料。

  pd_data = pd.read_excel('騰訊職位.xlsx')
  x = pd_data['職位分類'].value_counts() #index, index.values, index.tolist()
  x1_data = x.index.tolist()
  x2_data = x.tolist()
  
  '''
  ['技術', '産品', '設計', '銷售、服務與支援', '營銷與公關', '人力資源', '戰略與投資', '内容', '法律與公共政策', '财務', '行政支援']
  [705, 576, 192, 101, 44, 31, 28, 27, 16, 16, 6]
  '''

  y = pd_data['城市'].value_counts()
  y1_data = y.index.tolist()
  y2_data = y.tolist()
  '''
  ['深圳', '北京', '上海', '廣州', '成都', '武漢', '香港(中國)', '杭州', '西安', '重慶', '南京', '天津', '合肥', '昆明', '貴陽', '蘭州']
  [1076, 264, 232, 93, 44, 7, 7, 7, 5, 5, 3, 2, 2, 2, 1, 1]
'''
           

資料準備好之後我們就可以繪圖了。

# 繪制區域餅圖
    bar = (
        Pie()
            .add("", [list(z) for z in zip(x1_data, x2_data)])    # zip函數兩個部分組合在一起list(zip(x,y))-----> [(x,y)]
            .set_global_opts(title_opts=opts.TitleOpts(title="Pie-騰訊招聘職位分類餅圖"))     # 标題
            .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}: {d}"))      # 資料标簽設定
    )
    bar.render('騰訊招聘職位分類餅圖.shtml')

    # 繪制區域柱狀圖
    bar = (
        Bar()
            .add_xaxis(x1_data)
            .add_yaxis("騰訊招聘職位分類柱狀圖", x2_data)
            .set_global_opts(
            title_opts=opts.TitleOpts(title="Bar-騰訊招聘職位分類柱狀圖"),
            legend_opts=opts.LegendOpts(is_show=False),
        )
    )
    bar.render('騰訊招聘職位分類柱狀圖.shtml')

           
Python實戰|騰訊招聘你幹什麼?python可視化告訴你
Python實戰|騰訊招聘你幹什麼?python可視化告訴你

我們再來分析一下騰訊招聘的地理分布。

y = pd_data['城市'].value_counts()
    y1_data = y.index.tolist()
    y2_data = y.tolist()
    
map = (
        Map()
            .add(" ", [list(z) for z in zip(y1_data, y2_data)], "china")
            .set_global_opts(
            title_opts=opts.TitleOpts(title="騰訊職位分布圖"),
            visualmap_opts=opts.VisualMapOpts(max_=1100, is_piecewise=True),
        )
    )
    map.render('騰訊職位分布圖.shtml')

           
Python實戰|騰訊招聘你幹什麼?python可視化告訴你

好了,今天分享就到了,有什麼問題歡迎小夥伴們留言讨論~~