端午去哪?「去廣西,一起嘛」,看看我用Python分析的走一波

端午去哪?“去廣西,一起嘛”,看看我用Python分析的走一波

端午去哪?“去廣西,一起嘛”,看看我用Python分析的走一波

端午去哪?“去廣西,一起嘛”,看看我用Python分析的走一波

經過一番嘗試,我們成功找到了請求返回的真實url和關鍵參數,這裡返回的是json格式的數據,裡面包含了一個html文本。

端午去哪?“去廣西,一起嘛”,看看我用Python分析的走一波

端午去哪?“去廣西,一起嘛”,看看我用Python分析的走一波

3.正式爬取數據

總體思路是爬取索引頁中每一個行程的發起人和詳情頁url,之後進入詳情頁抓取出發時間、歷史、目的地、出發城市、希望人數以及報名人員情況等數據,每個行程的索引頁數據和詳情頁數據合 並後作為該行程的完整數據進行存儲。以下是爬蟲程序的總入口:

端午去哪?“去廣西,一起嘛”,看看我用Python分析的走一波

端午去哪?“去廣西,一起嘛”,看看我用Python分析的走一波

所以,我們必須先對獲取到的數據進行清洗, 以期為正式的數據分析奠定基礎。

1.規範格式

首先對歷時、希望人數、報名人數(女)、報名人數(男)這幾項數據進行清洗,僅保留數字部分;其次對出發是 按、出發地點相關數據進行情況,取到“:”及前面的內容。感謝pandas.Series.str方法,使我們可以非常簡單地完 成上述工作,功能函數如下:

端午去哪?“去廣西,一起嘛”,看看我用Python分析的走一波

only_num(self, col_list):去除數據中的非數字部分。

no_colon(self, col_list):去除數據中的“:”及其前面的內容。

端午去哪?“去廣西,一起嘛”,看看我用Python分析的走一波

1.男女比例

首先對參與出行計劃的人員性別進行分析,利用dataframe的sum()和groupby().count()方法可以很容易獲得行程 發佈者和參與者的性別分佈:

端午去哪?“去廣西,一起嘛”,看看我用Python分析的走一波

從圖中可以看出,發起人以女性居多,約佔總數的60%,而參與者剛好相反,男性比 例約為60%,估計是女同胞們更擅長精心策劃行程,而男同胞們大多比較“懶”吧~

2.出發時間

這裡我們首先用dataframen的groupby()方法,以“出行時間”為關鍵字對數據進行分組,分別統計每天的行程數量 和參與者數量,然後畫出折線圖。

端午去哪?“去廣西,一起嘛”,看看我用Python分析的走一波

端午去哪?“去廣西,一起嘛”,看看我用Python分析的走一波

端午去哪?“去廣西,一起嘛”,看看我用Python分析的走一波

端午去哪?“去廣西,一起嘛”,看看我用Python分析的走一波


分享到:


相關文章: