1. 程式人生 > >通過獵聘的招聘資訊找出學習線路規劃

通過獵聘的招聘資訊找出學習線路規劃

文章首發於微信公眾號: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綠洲,獲取更多內容!