Python分布式抓取和分析京東商城評價
互聯(lián)網(wǎng)購物現(xiàn)在已經(jīng)是非常普遍的購物方式,在互聯(lián)網(wǎng)上購買商品并且使用之后,很多人都會回過頭來對自己購買的商品進行一些評價,以此來表達自己對于該商品使用后的看法。商品評價的好壞對于一個商品的重要性顯而易見,大部分消費者都以此作為快速評判該商品質(zhì)量優(yōu)劣的方式。所以,與此同時,有些商家為了獲得好評,還會做一些 “好評優(yōu)惠” 或者 “返點” 活動來刺激消費者評價商品。
既然商品評價對于消費者選購商品而言至關重要,那么我想試試可以從這些評價信息中獲取到怎樣的價值,來幫助消費者快速獲取到關于該商品的一些重要信息,給他們的購物帶來更加可靠地保證?
所以,我認為,一種快速、全面、高提煉度和高對比度的信息獲取和展示方式將會非常必要。 于是,我采用分布式快速抓取京東的評價信息,然后使用 pandas 對抓取到的數(shù)據(jù)進行分析。
話不多說先附上使用地址
體驗地址:http://awolfly9.com/jd/
想要分析京東商城的商品評價信息,那么需要做些什么呢
- 采用分布式抓取,盡量在短時間內(nèi)抓取需要分析的商品足夠多的評價信息
- 將抓取到的評價信息都存儲到數(shù)據(jù)庫
- 從數(shù)據(jù)庫中取出所有數(shù)據(jù)進行數(shù)據(jù)分析
- 生成好評的詞云,并且獲取關鍵字
- 生成中評的詞云,并且獲取關鍵字
- 生成差評的詞云,并且獲取關鍵字
- 分析購買該商品不同顏色的比例,生成柱狀圖
- 分析購買該商品不同配置的比例,生成柱狀圖
- 分析該商品的銷售數(shù)量和評論數(shù)量和時間的關系,生成時間則線圖
- 分析該商品不同省份購買的的比例,生成柱狀圖
- 分析該商品不同渠道的銷售比例,生成柱狀圖
- 利用 Django 搭建后臺,將數(shù)據(jù)抓取和數(shù)據(jù)分析連起來
- 前端顯示數(shù)據(jù)抓取和分析結果
分布式抓取京東商城的評價信息
采用分布式抓取的目的是快速的在短時間內(nèi)盡量抓取足夠多的商品評價,使分析結果更精確
- 找出評價請求 URL 規(guī)律,獲取到如下 URL 組合鏈接
- 利用 Chrome 插件 Postman 測試鏈接是否可用,發(fā)現(xiàn)京東獲取評價信息并沒有驗證 Cookie 之類的反爬措施
- 開始編碼利用 scrapy 抓取京東商城的商品評價信息并存入數(shù)據(jù)庫以備使用
數(shù)據(jù)分析
- 從數(shù)據(jù)庫中取出相應數(shù)據(jù),開始分析
- 使用 python 的擴展庫 wordcloud 分別提取好評、中評、差評的關鍵字,并且生成相應的詞云圖片
- 分析該商品不同顏色的銷量占比,并且生成柱狀圖,例如 iphone7 的不同顏色金色、玫瑰金色、銀色、黑色、亮黑色、還有***出的紅色的占比
- 分析該商品不同配置的銷量占比,并且生成柱狀圖,例如 iphone7 32G 、 64G、128G 存儲
- 分析該商品銷售和評論時間并且生成折線圖,分析出商品在什么時間最暢銷
- 分析用戶購買該商品的渠道,例如用戶通過京東 Android 客戶端、微信京東購物、京東 iPhone 客戶端購物的比例,并且生成柱狀圖
- 分析購買該商品的用戶的地域省份。例如北京、上海、廣州那個城市在京東上購買 iPhone7 的人更多
- 將以上分析結果都存儲保留
Django 后臺 WEB
使用 Django 搭建一個簡易的后臺 jd_analysis,將分布式抓取數(shù)據(jù)和數(shù)據(jù)分析連起來,并且將分析結果返回前端顯示。
- jd_analysis 提供一個接口接受用戶請求分析的京東商城商品的 URL 鏈接
- jd_analysis 接受到商品鏈接后開啟爬蟲進程開始抓取需要分析的商品的名稱和評價數(shù)量
- 組合出完整的評價鏈接插入到 redis 中,實現(xiàn)分布式爬蟲抓取,盡可能在短時間內(nèi)抓取足夠多的該商品評價信息(我現(xiàn)在是 30s 時間大概可以抓取 3000 條評價信息)
- 主服務器等待一定的抓取時間,例如主服務器等待 30s,30s 后一定要給前端返回分析結果,所以等 30s 后清空 redis 中該商品的鏈接,從服務器沒有讀取不到需要抓取的鏈接也就自動關閉
- 開啟分析進程,開始分析抓取到的所有數(shù)據(jù),并且生成圖標等信息
前端展示
在客戶端***次請求時,生成一個 GUID,并且存儲在 cookie 中。然后開啟一個定時器,帶上 GUID 不斷的向 jd_analysis 后臺請求結果。jd_analysis 后臺利用請求的 GUID 從 redis 中獲取抓取信息和分析結果的所有內(nèi)容,返回給前端。前端顯示請求到的結果。
***附上兩張效果圖
購買和評論時間折線圖
購買渠道柱狀圖
大功告成
以上就是完整的抓取京東商品的評價信息并且使用 pandas 分析評價然后利用 Django 搭建后臺前端顯示抓取和分析結果的所有步驟。