用Python爬取分析【某東618】暢銷商品銷量數據,帶你看看大家都喜歡買什麼!
- 2021 年 6 月 19 日
- 筆記
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活動的暢銷商品數據,並進行數據清洗,最後以可視化的方式從不同角度去了解暢銷商品中,名列前茅的商品是哪些?銷售數據如何?用戶好評如何?等等
不明白的地方可以在下方留言,一起交流。