用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

Python研究者 發表於 2021-06-19
Python

618購物節,辰哥準備分析一波購物節大家都喜歡買什麼?本文以某東為例,Python爬取618活動的暢銷商品資料,並進行資料清洗,最後以視覺化的方式從不同角度去了解暢銷商品中,名列前茅的商品是哪些?銷售資料如何?使用者好評如何?等等

本文結構如下

1、爬取某東暢銷商品資料

2、清洗資料並並進行簡單分析

3、將資料進行視覺化展示

資料的欄位如下:

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

一共爬取了243條某東暢銷商品資料

01、獲取資料

1.   分析網頁

在編寫程式碼之前,先來分析一波網頁。

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

上面是某東的暢銷商品,通過辰哥分析分析,該網頁有非同步載入(前面10個商品是靜態載入,剩下的是動態非同步載入),因此我們需要寫了個請求去獲取資料。

2.   獲取靜態網頁商品連結

商品的銷售、評論等資料在商品詳情頁,這裡先獲取商品詳情頁連結

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

結果如下:

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

3.   獲取動態網頁商品連結

通過抓包可以獲取到動態載入連結,並獲取到商品標題和商品id(這裡的商品id可以用於後面拼接商品詳情頁連結)

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

獲取json資料後,提取出商品標題商品ID

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

4. 獲取打折、原價、秒殺價

通過商品ID可以獲取到商品打折、原價、秒殺價(這裡有介面,介面是通過抓包獲取的,感興趣的可以去自己去嘗試,不明白的可以直接使用)

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

這裡將該功能封裝成函式,通過傳入商品ID就可以獲取該商品的商品打折、原價、秒殺價

結果如下:

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

5. 獲取評論數、好評數、中評數、差評數、好評率

通過商品ID可以獲取到評論數、好評數、中評數、差評數、好評率(同樣這裡有介面,介面是通過抓包獲取的,感興趣的可以去自己去嘗試,不明白的可以直接使用)

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

結果如下:

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

6.   儲存到excel

接著開始遍歷商品,並通過ID去獲取商品的銷售情況(步驟4和步驟5的函式),最後把資料儲存到execl

定義表頭

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

寫入資料

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

其中的get_price和CommentCount是步驟4和步驟5的函式。count是excel中行數,因此在迴圈中count+1,依次寫入下一行。

最終儲存結果

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

一共爬取了243條某東暢銷商品資料

02、資料分析&視覺化

1.資料清洗

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

需要清洗的內容,主要有圖中這三列(標題、打折、好評數)。

清洗目標

  1. 標題過長(長度控制在10內),不方便後面的畫圖

  2. 打折欄位中含有折字,在進行排序時不能直接轉數值型。

  3. 好評數中的,轉為具體數值,如1.2萬轉為12000

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

清洗結果:

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

2.視覺化-商品打折力度

從清洗後資料中取出:商品名稱和打折這兩列,進行【排序】從打折最大到打折最小。最後取出前15名進行視覺化

核心程式碼****如下:

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

視覺化效果

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

3.視覺化-好評率統計

從資料中取出:好評率這列,對不同的好評率進行統計,如好評率是100%(1)的商品多少件,好評率99%(0.99)的商品多少件等。

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

核心程式碼****如下:

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

視覺化效果

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

3.視覺化-暢銷商品銷量排行

從資料中取出:商品名稱和評論數這兩列,這裡根據評論數去作為銷售依據,對商品的銷量進行排序(高到低),並取出前15名進行視覺化。

核心程式碼****如下:

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

視覺化效果

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

4.視覺化-暢銷商品前15名原價與秒殺價對比

在上面的分析中可以知道暢銷商品的銷量前15名,這裡將這15件商品的原價和秒殺價進行視覺化對比。

核心程式碼****如下:

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

視覺化效果

用Python爬取分析【某東618】暢銷商品銷量資料,帶你看看大家都喜歡買什麼!

03、小結

本文以某東為例,Python爬取618活動的暢銷商品資料,並進行資料清洗,最後以視覺化的方式從不同角度去了解暢銷商品中,名列前茅的商品是哪些?銷售資料如何?使用者好評如何?等等

不明白的地方可以在下方留言,一起交流。