文章目錄
- ==有需要本項目的代碼或文檔以及全部資源,或者部署調試可以私信博主==
- 項目介紹
- 數據采集
- 數據預處理
- 數據分析與可視化
- 大屏設計
- 模型構建
- 系統展示
- 每文一語
有需要本項目的代碼或文檔以及全部資源,或者部署調試可以私信博主
項目介紹
本研究基于京東官網的茶葉相關數據進行探索,了解茶葉市場的規律和需求,并且為市場提供相應的規律結論。首先分析京東官網的頁面結構,發現只有用戶登陸且要經過多次驗證才能穩定的瀏覽商品頁面,這表明一般的數據采集方案無法達到預期效果。
本研究通過Python的爬蟲selenium,實現自動驅動爬蟲,為解決官網需要驗證等情況,采用模擬登錄的手段對用戶的信息進行注入,包括延時、偽裝請求頭以及自動識別異常頁面發送郵件,及時操作等手段。爬蟲獲取到價格、商品描述、商品屬性等相關信息共計14個維度的字段,數據量共計上萬條。通過數據預處理,將采集的數據,進行清洗。從字段的異常值,重復值,缺失值出發,初步進行數據整理,同時對一些重要的字段,通過在商品描述中智能提取出,增加字段的豐富性,為后續的分析和建模提供較好的數據基礎。由于官網的數據不統一,在處理階段需要結合多方向進行思考,最終將處理好的結果存儲到MySQL關系型數據庫中,便于后續的數據維護和調用。
為進一步探索茶葉市場的規律,本研究基于京東茶葉商品數據進行多維度的數據分析,從價格維度,商品屬性維度以及文本進行分析,繪制出折線圖、柱狀圖、餅圖、詞云圖。以可視化的形式傳遞數據的規律,為進一步的將人工智能與本研究結合,通過機器學習算法Catboost進行對茶葉的價格進行預測,最終探索影響茶葉價格的特征重要性有哪些。最后,本研究采用Flask框架和HTML、css、JavaScript等技術將上述的所有東西集成到一個系統平臺中,便于調用查看以及管理數據。平臺支持用戶、管理員注冊登錄,同時用戶可以查看茶葉市場的分析規律和可視化結果,并且可以調用模型進行價格的預測,輸入茶葉及相關特征屬性,點擊預測即可出現價格。管理員可以對數據和用戶進行維護管理,保證了數據質量和可移植性。
數據采集
本研究涉及京東平臺上大量關于茶葉商品的頁面信息,采集任務不僅面臨技術層面的挑戰,也伴隨著復雜交互設計帶來的不穩定性。研究中選用了動態頁面采集方式,并結合瀏覽器自動化技術,試圖在保留頁面結構完整性的前提下,高效獲取所需數據。頁面并非靜態展示,內容多由JavaScript動態渲染,且商品詳情通常需下拉頁面或跳轉鏈接才能完整加載,這些特性要求數據采集工具具備一定的互動能力。
最開始我嘗試過使用傳統的requests加正則表達式抓取頁面源代碼,但很快遇到了內容加載不全和頁面數據為空的情況。實際瀏覽過程中會發現,許多商品信息只有在瀏覽器滾動到底部后才逐步加載,這使得簡單的網絡請求無法捕捉全部字段。基于這一觀察,研究轉向使用模擬瀏覽器的方式展開數據抓取。瀏覽器驅動程序成為解決方案的核心,它能代替人工打開頁面、輸入信息、點擊登錄、執行滑動等一系列操作,操作過程更貼近真實用戶行為,因此在面對反爬蟲機制時更具適應性。
數據預處理
前期通過動態模擬爬蟲獲取的大量商品信息,被分批次保存為多個CSV文件。這種策略雖能緩解平臺的反爬機制壓力,但也帶來了數據分散的問題。為了保證后續處理的一致性,研究者將所有CSV文件統一合并,形成一個完整的數據框架。合并后對字段結構進行了初步檢查,確認缺失情況與重復條目,對冗余內容及時剔除,防止影響特征統計的準確性。
數據在完成清洗與擴展后,再次進行缺失值檢查。對仍存在空值的字段,通過前后填補的方式(如向前或向后查找相鄰值)進行補全。這種方法適用于信息邏輯連續的字段,有助于保留數據的完整性而不犧牲其代表性。最終處理后的數據結構穩定,字段明確,能夠滿足后續建模與可視化平臺展示的需求。
數據分析與可視化
對不同店鋪的價格差異進行了橫向比較,選取每家店鋪的平均價格作為核心指標,繪制折線圖,直觀展示各商家間價格波動。同時在圖中加入最大值、最小值及整體均線等標記,便于快速識別定價水平較高或較低的店鋪。折線圖支持交互,懸停時可顯示具體數值,增強了圖表的可讀性。在品牌維度上,也以相同邏輯進行分析,呈現不同品牌間的定價策略差異。一些傳統茶葉品牌在平均價格上明顯更高,可能與市場定位和包裝策略有關。
此外,統計了各品牌及店鋪在樣本中的出現頻率,并用柱狀圖和餅圖展示,以衡量市場覆蓋度,識別高頻品牌及長期活躍店鋪。針對“評論數”字段,將評論數量分組并與價格聚合分析,構建“評論數量與價格”關系圖,探索消費者活躍度與商品價格之間的潛在關聯。結果顯示,部分評論集中分布的商品,其平均價格呈現一定規律,這或與茶葉市場的熱銷特性相關。
在非結構化文本處理方面,利用分詞工具對商品名稱及描述進行詞頻統計,生成詞云圖,以識別消費者關注的高頻關鍵詞。進一步處理包括剔除停用詞、篩選高頻詞,以確保詞云內容更具代表性。
另一部分分析聚焦于茶葉自身屬性,如采摘地、茶葉等級、殺青方式等。對各屬性的出現頻次進行了統計并可視化,幫助快速發現高頻屬性的集中分布,兼具市場分析與茶葉知識科普價值。同時,將采摘時間、采摘要求等字段納入可視化,令分析更為精細,便于判斷市場主流產品的物理與產地特征是否集中于某些類型或區域。
此外,制作了“京東自營”與“非自營”商品占比的對比餅圖,幫助理解平臺自營與入駐商家之間的商品分布,也為用戶偏好研究提供參考。進一步還對品牌與包裝重量的平均值進行了聯動分析,揭示出哪些品牌偏好大包裝,哪些主打輕量化產品,這種交叉對比為價格策略、運輸成本及用戶畫像等研究提供了依據。
整體圖表通過 Page 模塊進行分屏布局,形成多屏、可拖拽的視圖,方便集成到后續的平臺中進行交互式探索。圖表風格統一,支持數據更新,無需編程即可對多維度數據進行深入分析。
大屏設計
模型構建
在建立茶葉價格預測模型前,先清洗了數據,去除價格列中的無效字符,并剔除如商品描述、編號等噪聲變量。為增強模型的泛化能力,對數據進行了擴充并去除空值。對非數值字段進行識別,便于在CatBoost模型中作為類別特征處理,避免傳統one-hot編碼帶來的信息損失。訓練集和測試集按8:2隨機劃分,以保證模型驗證的可靠性。
選用CatBoost回歸器建模,該算法對缺失值及類別變量處理具有優勢,設置迭代次數為1800,并結合早停機制防止過擬合。模型評估顯示,測試集的均方誤差(MSE)為6534.29,均方根誤差(RMSE)為80.83元,平均絕對誤差(MAE)為44.86元,R2達0.80,反映出較好的預測精度和解釋力。
特征重要性分析顯示,“品牌”對價格影響最大,反映出消費者對品牌溢價的敏感;“重量”“店鋪名”同樣影響顯著,顯示包裝規格及商家信譽在定價中的作用。相比之下,產地、采摘時間等物理屬性影響較小。整體模型不僅具備較強預測力,也為理解茶葉價格機制提供了數據支持,最終將模型及處理后的數據保存,便于后續應用。
系統展示
每文一語
加油