618購物節,辰哥準備分析一波購物節大家都喜歡買什麼?本文以某東為例,Python爬取618活動的暢銷商品資料,並進行資料清洗,最後以視覺化的方式從不同角度去了解暢銷商品中,名列前茅的商品是哪些?銷售資料如何?使用者好評如何?等等
本文結構如下:
1、爬取某東暢銷商品資料
2、清洗資料並並進行簡單分析
3、將資料進行視覺化展示
資料的欄位如下:
一共爬取了243條某東暢銷商品資料
01、獲取資料
1. 分析網頁
在編寫程式碼之前,先來分析一波網頁。
上面是某東的暢銷商品,通過辰哥分析分析,該網頁有非同步載入(前面10個商品是靜態載入,剩下的是動態非同步載入),因此我們需要寫了個請求去獲取資料。
2. 獲取靜態網頁商品連結
商品的銷售、評論等資料在商品詳情頁,這裡先獲取商品詳情頁連結
結果如下:
3. 獲取動態網頁商品連結
通過抓包可以獲取到動態載入連結,並獲取到商品標題和商品id(這裡的商品id可以用於後面拼接商品詳情頁連結)
獲取json資料後,提取出商品標題和商品ID
4. 獲取打折、原價、秒殺價
通過商品ID可以獲取到商品打折、原價、秒殺價(這裡有介面,介面是通過抓包獲取的,感興趣的可以去自己去嘗試,不明白的可以直接使用)
這裡將該功能封裝成函式,通過傳入商品ID就可以獲取該商品的商品打折、原價、秒殺價
結果如下:
5. 獲取評論數、好評數、中評數、差評數、好評率
通過商品ID可以獲取到評論數、好評數、中評數、差評數、好評率(同樣這裡有介面,介面是通過抓包獲取的,感興趣的可以去自己去嘗試,不明白的可以直接使用)
結果如下:
6. 儲存到excel
接著開始遍歷商品,並通過ID去獲取商品的銷售情況(步驟4和步驟5的函式),最後把資料儲存到execl
定義表頭
寫入資料
其中的get_price和CommentCount是步驟4和步驟5的函式。count是excel中行數,因此在迴圈中count+1,依次寫入下一行。
最終儲存結果
一共爬取了243條某東暢銷商品資料
02、資料分析&視覺化
1.資料清洗
需要清洗的內容,主要有圖中這三列(標題、打折、好評數)。
清洗目標:
-
標題過長(長度控制在10內),不方便後面的畫圖
-
打折欄位中含有折字,在進行排序時不能直接轉數值型。
-
好評數中的萬,轉為具體數值,如1.2萬轉為12000
清洗結果:
2.視覺化-商品打折力度
從清洗後資料中取出:商品名稱和打折這兩列,進行【排序】從打折最大到打折最小。最後取出前15名進行視覺化
核心程式碼****如下:
視覺化效果:
3.視覺化-好評率統計
從資料中取出:好評率這列,對不同的好評率進行統計,如好評率是100%(1)的商品多少件,好評率99%(0.99)的商品多少件等。
核心程式碼****如下:
視覺化效果:
3.視覺化-暢銷商品銷量排行
從資料中取出:商品名稱和評論數這兩列,這裡根據評論數去作為銷售依據,對商品的銷量進行排序(高到低),並取出前15名進行視覺化。
核心程式碼****如下:
視覺化效果:
4.視覺化-暢銷商品前15名原價與秒殺價對比
在上面的分析中可以知道暢銷商品的銷量前15名,這裡將這15件商品的原價和秒殺價進行視覺化對比。
核心程式碼****如下:
視覺化效果:
03、小結
本文以某東為例,Python爬取618活動的暢銷商品資料,並進行資料清洗,最後以視覺化的方式從不同角度去了解暢銷商品中,名列前茅的商品是哪些?銷售資料如何?使用者好評如何?等等
不明白的地方可以在下方留言,一起交流。