想必昨天的七夕節,一定是有人歡喜有人憂的一天,朋友圈里的曬照惹惱了我的一個程序員朋友,在昨晚怒爬2萬條相親網站數據,做了一次相親男女畫像!
話不多說,我們今天就以某相親網站為例子,爬取搜索頁面當中所有的用戶信息,包括“用戶ID”、“年齡”、“城市”、“學歷”、“屬相”等內容,使用的工具是爬蟲工具pycharm。

首先老規矩,爬蟲之前我們先分析一些目標網頁的構成,我們進入網站的搜索頁面,摁下F12打開開發者工具,找到網頁選項,看一下網頁的Request URL和請求方式、user-agent等基本信息:

請求方式是post,說明我們不用去源代碼里找標簽了,所有的數據都存放在網頁的json文件當中,這倒是方便很多,我們直接通過鏈接直接獲取API文件,不需要進行網頁解析,點擊HTR后點擊“請求”就能看到表單數據了。

很顯然,“sex”就是性別,“f”是“female”的縮寫,“p”代表著頁碼,因為搜索頁面一共有10頁,所以我們需要構造一下完整的請求url:http://search.jiayuan.com/v2/search_v2.php?key=&sex=f&stc=1:11,2:18.24,3:155.170,23:1&sn=default&sv=1&p=1&f=select
當網頁頁碼發生變化的時候,我們發現url當中只有p值發生了變化,因此只需要改變p值就能構造對應的URL。
好了,網頁的構成都分析好了,下一步就要開始在pycharm當中寫爬蟲了,通過上面的url,我們可以獲取到服務器返回的 json格式的用戶信息,部分源代碼如下:

爬取的過程就不詳細講解了,因為這個網站還需要進行模擬登陸,所以需要登陸后將 cookie 放入爬蟲的請求頭中,這樣便可正確訪問數據。經過爬取后的數據清洗后如下:

注:Excel數據集的下載方式可以直接拉到文末獲得!
BI可視化分析
有了數據之后,我們下一步就是進行數據可視化分析了,這里我們把清洗好的數據導入到FineBI當中,在FineBI的主頁創建Excel數據集,位置我們可以放在任意的一個業務包里:

下一步為了能夠在不改變源數據表的情況下進行數據加工和編輯,因此使用自助數據集的方式,將excel表當中的所有指標全部添加:

在FineBI當中,我們可以對數據進行很多加工操作,比如過濾、分組匯總、新增列、排序、合并等等:

因為我們已經在excel當中清洗過數據了,所以這次就不用進行加工處理了,直接選擇創建一個可視化組件,命名為“相親”:

然后我們就進入了可視化操作頁面,我們只需要將指標和維度拖入到橫縱坐標軸上,選擇對應的圖表類型,比如這里選擇了“柱狀圖”,就能自動展示出圖表:

當然我們也可以對指標和維度進行編輯,比如排序、分組、過濾等等:

然后可以對圖表進行一些優化,比如顏色、大小、標簽等等,一個基礎的可視化圖表組件就完成了:

結論分析
1、單身男女的學歷情況分析

整體上看高學歷的人數占比是很小的,大多數是大專和本科畢業,但是其中碩士的單身比例也非常高,因為一般來說,學歷越高婚姻率越低;下面我們再看一下不同性別的學歷情況:

整體上看,女性的學歷程度比起男性要低一些,大專以下的女性比例高,本科以上的男性比例高,這個也可能跟高學歷的人數有關;
2、單身男女的婚姻狀況

沒想到,占比最大的婚姻狀況竟然是離異,說明相親網站上市場最大的對象是離異男女,占到了50%的比例;
我們再用性別維度進行拆解,發現整體比例是差不多的,但是男性的喪偶比例要高一下,未婚比例要比女性要低很多,說明相親市場中未婚的還是以女性為主。

3、單身男女的年齡、身高情況

首先是年齡情況,可以看到相親網站上用戶的整體年齡偏大,主要的群體以30-40歲為主,但是男性的年齡分布出現了明顯的斷層,40歲-50歲的比例是很小的,但是55歲以上的比例又遠超女性,看起來大齡剩男都是因為離異或者喪偶;
而女性在55歲之前的單身比例都比較高,55歲之后就斷崖式下降了,看起來單身女性是個在各個年齡段都存在的問題啊。
下面我們再來看一下單身男女的身高情況:

很顯然,單身女性在“160cm”、“165cm”出現了兩次高峰,單身男性在“170cm”、“175cm”出現了兩次高峰。
據說女性不過160、男性不過175都很難找對象,看起來大家在填資料的時候,都或多或少往這兩個數值上靠,整體上能看出來,個子不高確實不太好找對象。
為了更明顯地看出男女身高與年齡的情況,我特意做了張分布圖:


4、單身男女的擇偶觀分析

這張圖橫坐標代表個人的年齡,縱坐標代表著擇偶對象的心儀年齡高,基本上男女都呈現正相關的線性關系,但是男性明顯對比自己年齡低的更喜歡,而女性則相反。
我們再來看一下單身男女對于未來配偶的條件分析:

果然有房有車才是大家最關心的條件,這也不能說錯,因為單身年齡越大,對于生活的要求是偏高的;
5、單身男女的城市分布分析

為了方便看出分布情況,我采用了熱力地圖,實際上從數據上可以看出單身數量最多的城市都是一線城市,包括:上海、成都、廣州、北京、天津等地。
因為爬取的信息有限,因此分析結論不是非常深入,僅供大家娛樂,祝大家早日找到心儀對象,明年七夕不單身!