通過獵聘的招聘資訊找出學習線路規劃
文章首發於微信公眾號:Python綠洲。如需轉載,請聯絡該公眾號
前言
之前發過一篇文章《 Python or Java?Boss直聘告訴你該如何選擇》, 主要是這兩種語言方向在應聘崗位上的比較,沒有涉及具體的崗位要求的分析。前兩天,剛好看到網上的一些學習路線圖,又對比了招聘網站上的要求,發現這兩者其實差不多。
所以就用爬蟲爬取了獵聘網上的崗位資訊,對這些招聘資訊進行處理,從中找出需要掌握的一些語言和工具,從而有目的地進行學習,更快的提高自己的能力,讓自己不再因為不知道學習的線路而煩惱,也能夠符合招聘的要求。
檢視網頁
從這個崗位職責中,可以看出需要掌握的工具或語言絕大多數都是以英文為主。所以主要提取英文就行了。至於其他的資訊就不進行提取了
流程
- 爬取搜尋到的崗位連結
- 進一步爬取詳細的崗位要求
- 提取其中英文單詞
- 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進行資料展示
重點
個人感覺詞雲更加準確,不過詞雲和bar
圖處理方式都是一樣的,只是表現形式不一樣而已。從柱狀圖中可以看出需要掌握的工具可以分為三類:
- 資料庫:mysql、oracle、mongodb
- 解析:xpath、css
- 反爬:cookie、ip、scrapy、jwt
其中jwt
(JSON Web Token) 我就不認識。所以通過這種方式,我就可以找到自己的盲區,就算不深入瞭解學習,但是百度一下,大概知道它是什麼,還是可以的嘛
最後
如果有感興趣的小夥伴,可以自己動手試一下。個人感覺這些排名前10的工具對自己的職業規劃還是有點幫助的,也希望能夠對你有所幫助!
github地址:https://github.com/stormdony/python_demo/tree/master/LiePin
歡迎關注微信公眾號:Python綠洲,獲取更多內容!