解答思路
我一直提倡的是 學以致用,知行合一,所以當我們學習和儲備技能的時候應該要和市場相結(jié)合,準確的說應該是人才市場。
要了解人才市場有個非常簡單的方法——招聘網(wǎng)站。我們上招聘網(wǎng)站搜一搜,看看企業(yè)在招聘的時候都有哪些技能需求就一目了然了。
可問題就是數(shù)據(jù)那么多,如果只抽取部分做參考不夠準確,一個個去看又效率太低。
我覺得身為開發(fā)人員最大的優(yōu)勢就是 可以用代碼等技術手段定制所需的工具。所以我們只需要寫一段爬蟲代碼,把招聘網(wǎng)站上的數(shù)據(jù)“同步”到數(shù)據(jù)庫,然后進行統(tǒng)計分析,就可以進行有的放矢地學習了。先看一下統(tǒng)計分析結(jié)果:

動手實踐
以個人比較喜歡的某招聘網(wǎng)站為例。
網(wǎng)頁分析
搜索“前端”,人往高處看齊,我們添加一個過濾條件“25k-50k”,看看市場對高級前端的要求。同時按下F12打開調(diào)試,發(fā)現(xiàn)這里發(fā)送了ajax請求(凡事有利有弊,前后端分離雖然開發(fā)效率提高了,但同時也為爬蟲程序降低了難度)。
補充一下:一般分兩種情況:json數(shù)據(jù)和html頁面,本文兩種情況皆有涉及。

通過列表我們只能知道公司和職位,點擊鏈接跳轉(zhuǎn)到詳情頁看到我們想要的信息:崗位職責和要求。

這里沒有看到ajax請求,應該是后端利用模板直接生成的靜態(tài)頁面,所以需要解析html,會略微麻煩一些。
編寫代碼
整個編碼的思路變得很清晰了:
1.分頁查詢職位列表
用request模塊發(fā)送get請求,獲取json數(shù)據(jù),然后按照id查詢html。
2.按職位查詢詳情并入庫
用jsdom模塊對獲取的html進行dom解析,這個模塊很容易上手,可用jquery語法。
將解析的數(shù)據(jù)過濾,保留崗位職責和要求信息,利用mongoose保存至數(shù)據(jù)庫。
3.從數(shù)據(jù)庫中查詢結(jié)果
查詢統(tǒng)計各技能占比。結(jié)果如開頭截圖所示。
覺得文章有用的,關注一下微信公眾號:zhiheguoqiang