通過獵聘的招聘信息找出學習線路規劃

文章首發於微信公衆號:Python綠洲。如需轉載,請聯繫該公衆號

前言

之前發過一篇文章《 Python or Java?Boss直聘告訴你該如何選擇》, 主要是這兩種語言方向在應聘崗位上的比較,沒有涉及具體的崗位要求的分析。前兩天,剛好看到網上的一些學習路線圖,又對比了招聘網站上的要求,發現這兩者其實差不多。

所以就用爬蟲爬取了獵聘網上的崗位信息,對這些招聘信息進行處理,從中找出需要掌握的一些語言和工具,從而有目的地進行學習,更快的提高自己的能力,讓自己不再因爲不知道學習的線路而煩惱,也能夠符合招聘的要求。

查看網頁

首頁

詳細頁面

從這個崗位職責中,可以看出需要掌握的工具或語言絕大多數都是以英文爲主。所以主要提取英文就行了。至於其他的信息就不進行提取了

流程

  1. 爬取搜索到的崗位鏈接
  2. 進一步爬取詳細的崗位要求
  3. 提取其中英文單詞
  4. pyecharts展示

爬取招聘崗位

使用beautifulsoup進行解析,主要將崗位名稱,詳細鏈接,公司,薪資,位置和學歷要求這幾個信息存到MongoDB中就好。

def getLink(seachname, pagenum):
    for i in range(pagenum):
        url = "https://www.liepin.com/zhaopin/?init=-1&key={}&curPage={}".format(
            seachname, i)
        web_data = requests.get(url=url, headers=header)
        soup = BeautifulSoup(web_data.content, 'lxml')
        job_list = soup.select(".sojob-list > li")
        for item in job_list:
            name = item.select(".job-info > h3")[0]['title']
            link = item.select(".job-info > h3 > a")[0]['href']
            company = item.select(".company-name > a")[0].text
            salary = item.select(".text-warning")[0].text
            location = item.select(".area")[0].text
            education = item.select(".edu")[0].text
            data = {
                "title": name,
                "link": link,
                "company": company,
                "salary": salary,
                "location": location,
                "education": education,
            }
            pywork.insert(data) #使用MongoDB存儲

詳細崗位要求

由於任職要求中有<br>標籤,需要將其切除,而且由於使用beautifulsoup解析,所以<br>是tag對象,需要創建對象再刪除。被這個問題困住了好久。
之後將所有爬取到的崗位要求都寫到一個文件中,方便後期使用jieba切分

def getInfo(url, demands_text):
    web_data = requests.get(url, headers=header)
    soup = BeautifulSoup(web_data.content, 'lxml')
    try:
        demands = soup.select(".content-word")[0].contents
        demands = sorted(set(demands), key=demands.index)
        # 刪除<br/>
        delete_str = "<br/>"
        br_tag = BeautifulSoup(delete_str, "lxml").br
        demands.remove(br_tag)
        # 拼接所有要求
        for item in demands:
            demands_text += item.replace("\r", "")
        #寫入文件
        f = open('demands.txt', mode='a+', encoding='UTF-8')
        f.write(demands_text + "\n")
        f.close()
    except:
        logging.log("warning...")

分詞

使用jieba分詞之後,還需要將一些單詞例如:or,pc等上刪除,本着“寧可錯殺一千,不可放過一個”的原則,所以將少於1個字母的單詞使用正則去掉

def CutWordByJieBa(txt, seachname):
    seg_list = jieba.cut(txt, cut_all=True)
    w1 = "/ ".join(seg_list)  # 全模式
    fil = re.findall('[a-zA-Z]{1,}/', w1) # 提取英文
    strl = ""
    for i in fil:
        strl += i
    strl = strl.lower() # 全部轉換爲小寫

可視化

在這部分,之前只想着將需要掌握的工具用詞雲進行展示就好。然而,有點幸運呀!當使用Navicat12連接到MongoDB的時候,發現它有自動作圖分析的功能。所以先用Navicat中的功能,簡單的來看一下總體情況:

以爬蟲工程師爲關鍵詞查詢後,使用pyecharts進行數據展示
company
edu
salary

重點

wordcloud
在這裏插入圖片描述
個人感覺詞雲更加準確,不過詞雲和bar圖處理方式都是一樣的,只是表現形式不一樣而已。從柱狀圖中可以看出需要掌握的工具可以分爲三類:

  1. 數據庫:mysql、oracle、mongodb
  2. 解析:xpath、css
  3. 反爬:cookie、ip、scrapy、jwt

其中jwt(JSON Web Token) 我就不認識。所以通過這種方式,我就可以找到自己的盲區,就算不深入瞭解學習,但是百度一下,大概知道它是什麼,還是可以的嘛

最後

如果有感興趣的小夥伴,可以自己動手試一下。個人感覺這些排名前10的工具對自己的職業規劃還是有點幫助的,也希望能夠對你有所幫助!

github地址:https://github.com/stormdony/python_demo/tree/master/LiePin

歡迎關注微信公衆號:Python綠洲,獲取更多內容!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章