◎龐笑笑 趙廣宣 戶慶凱
本文實現(xiàn)了瓜果蔬菜價格等信息的數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)存儲、分析和可視化。主要研究內(nèi)容是利用數(shù)據(jù)采集技術(shù)對“北京新發(fā)地農(nóng)產(chǎn)品批發(fā)市場”網(wǎng)站的瓜果蔬菜價格信息數(shù)據(jù)進行爬取,通過對市場的價格和種類進行數(shù)據(jù)分析,可以預(yù)測之后幾天的蔬菜水果價錢的波動,購買蔬菜的量的多少提供幫助。方便商家或用戶批發(fā)購買瓜果蔬菜時做出更合理的決策,使利益最大化。另外還可觀察市場供貨量數(shù)據(jù),為市場變動需求做好應(yīng)變。
近年來,隨著大數(shù)據(jù)、物聯(lián)網(wǎng)、云計算、移動互聯(lián)、LBS、遙感及地理信息技術(shù)的飛速發(fā)展,農(nóng)業(yè)數(shù)據(jù)呈現(xiàn)海量爆發(fā)趨勢,我國農(nóng)業(yè)也隨之跨步邁入大數(shù)據(jù)時代。
在現(xiàn)如今的大數(shù)據(jù)時代,幾乎所有的國家都開始意識到網(wǎng)絡(luò)大數(shù)據(jù)帶來的便利和機遇,開始利用農(nóng)業(yè)大數(shù)據(jù)技術(shù)以及其它領(lǐng)域的新技術(shù)大力發(fā)展農(nóng)業(yè),涉及領(lǐng)域和內(nèi)容廣泛,影響因素很多,數(shù)據(jù)收集復(fù)雜,決策管理困難。因此,要實現(xiàn)農(nóng)業(yè)大數(shù)據(jù)的潛力,仍然存在一些阻力。但是同時,由于這些特點,農(nóng)業(yè)已經(jīng)成為大數(shù)據(jù)的無窮源,農(nóng)業(yè)大數(shù)據(jù)的應(yīng)用也有更多的可能性。
北京新發(fā)地農(nóng)產(chǎn)品批發(fā)市場成立于1988 年5 月16 日市場建設(shè)初期只是一個占地15 畝、管理人員15 名、啟動資金15萬元,連圍墻都是用鐵絲網(wǎng)圍起來的小型農(nóng)貿(mào)市場。市場現(xiàn)占地1680 畝,管理人員1500 名,固定攤位2000 個左右、定點客戶4000 多家,日吞吐蔬菜1.8 萬噸、果品2 萬噸、生豬3000 多頭、羊1500 多只、牛150 多頭、水產(chǎn)1500 多噸。近年來,市場本著“扶大、扶強、扶優(yōu)”的原則,培養(yǎng)出單品經(jīng)營大王100 名,綜合銷售百強100 名,形成了以蔬菜、果品批發(fā)為龍頭,肉類、糧油、水產(chǎn)、調(diào)料等十大類農(nóng)副產(chǎn)品綜合批發(fā)交易的格局。
市場成立33 年來,始終秉承“讓客戶發(fā)財,求市場發(fā)展”的宗旨,以“服務(wù)首都、服務(wù)三農(nóng)”為己任,堅持以道德和責任做好首都農(nóng)產(chǎn)品安全供應(yīng)這個天大的事;用講良心,守誠信,為百姓,承擔了首都80%以上的農(nóng)產(chǎn)品供應(yīng)。2020 年交易量1298 萬噸,交易額1006 億元人民幣。在全國4600 多家農(nóng)產(chǎn)品批發(fā)市場中,新發(fā)地市場交易量、交易額名列前茅,是首都名副其實的大“菜籃子”和大“果盤子”。“新發(fā)地”品牌已成為中國農(nóng)產(chǎn)品的代名詞,新發(fā)地市場的農(nóng)產(chǎn)品價格指數(shù)成為引領(lǐng)中國農(nóng)產(chǎn)品市場價格的風向標和晴雨表。
利用數(shù)據(jù)采集技術(shù)對“北京新發(fā)地農(nóng)產(chǎn)品批發(fā)市場”網(wǎng)站的瓜果蔬菜價格信息數(shù)據(jù)進行爬取,通過對市場的價格和種類進行數(shù)據(jù)分析,可以預(yù)測之后幾天的蔬菜水果價錢的波動,買蔬菜的量的多少提供幫助。為商家或用戶批發(fā)購買瓜果蔬菜提供更優(yōu)的選擇。實現(xiàn)了蔬菜水果價格等信息的數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)存儲、分析和可視化。
通過使用爬蟲技術(shù),能在短時內(nèi)提取有價值的信息數(shù)據(jù)。得到有價值的數(shù)據(jù)后,根據(jù)數(shù)據(jù)的形式進行整理,運用HTML、CSS、JavaScript、Flask 框架、Echarts、WordCloud 等技術(shù)對數(shù)據(jù)進行可視化展現(xiàn)。將數(shù)據(jù)進行完整地分析,有利于更好地利用數(shù)據(jù)解決實際問題。本文將對基于Python 的聚焦式網(wǎng)絡(luò)爬蟲設(shè)計與實現(xiàn)以及分析菜市場價格數(shù)據(jù)并可視化地展出使結(jié)果更直觀化。
訪問目標網(wǎng)站,利用瀏覽器在北京新發(fā)地主頁中選擇價格行情的歷史數(shù)據(jù),查看某一月份的最高價格、最低價格、平均價格以及記錄狀況。按F12 查看網(wǎng)頁源代碼,將想要爬取的內(nèi)容的Xpath 路徑復(fù)制下來,在桌面創(chuàng)建一個文本文檔用于放置所復(fù)制的Xpath 路徑,在后面編寫程序代碼時會用到,用Xpath 對HTML 進行解析。最后將爬取到的數(shù)據(jù)保存為csv 文件并將數(shù)據(jù)進行分析可視化展示。
爬取目標網(wǎng)站為北京新發(fā)地農(nóng)產(chǎn)品批發(fā)市場官網(wǎng)(http://www.xinfadi.com.cn/)。首先導(dǎo)入代替瀏覽器發(fā)請求的Requests 模塊,再次導(dǎo)入使我們能更好更快地拿到數(shù)據(jù)并對數(shù)據(jù)進行預(yù)處理的html,最后導(dǎo)入CSV 庫,將數(shù)據(jù)寫入到CSV 文件中。
(1)導(dǎo)入 requests 和 csv 模塊,同時實例化一個 class:vegatable_data。具體代碼如下:


(2)分析URL。
對網(wǎng)頁源代碼分析,通過刷新查找到異步加載的包,發(fā)現(xiàn)異步加載的包返回的就是我所需要的數(shù)據(jù)。對返回的數(shù)據(jù)進行 分 析 發(fā) 現(xiàn) Imit,current,pubDateStartTime,pubDateEnd-Time,prodPcatid,prodCatid,prodName ,這些關(guān)鍵詞返回的就是所要抓取的數(shù)據(jù)內(nèi)容。如圖1 所示。

圖1 getPriceData。html 的 Preview
通過對異步加載的進行分析發(fā)現(xiàn),網(wǎng)頁采用的是post 請求,返回的是json 類型數(shù)據(jù),對返回的關(guān)鍵字進行初始化。具體代碼如下所示。


獲取到的數(shù)據(jù)會以指定格式存放。由于CSV 文件使數(shù)據(jù)交換更容易,故采用CSV 的形式進行存儲。考慮到后邊對數(shù)據(jù)進行分析、數(shù)據(jù)可視化等問題,所以采用一次性寫入的方法進行。具體實現(xiàn)代碼如下:

對目標數(shù)據(jù)進行整理,通過tableau 軟件工具,對爬取的半個月蔬菜價格信息進行分析。
(1)平均價格分析。
對半個月的蔬菜、水果平均價格數(shù)據(jù)進行分析,如圖2 所示。大部分時間處于穩(wěn)定狀態(tài),只有5 月10 日的價格有個突變上升狀態(tài)。

圖2 蔬菜水果平均價格
(2)蔬菜單個平均價格。
用氣泡圖來圖示各種蔬菜的平均價格。氣泡越大表示價格越高。如圖3 所示,通過對平均價格和蔬菜總類發(fā)現(xiàn),雞蛋的平均價格較高。購買雞蛋是要慎重。不是購入的最佳時機,可再等等。

圖3 蔬菜平均價格
(3)平均價格,最低價格,最高價格對比分析。
通過對平均價格,最低價格,最高價格的對比發(fā)現(xiàn),在5月10 日的時候菜價達到了最高價格。現(xiàn)在的蔬菜價格趨于平穩(wěn),可以適量的增加買菜的數(shù)量。如圖4 所示。

圖4 平均價格,最低價格,最高價格對比
(4)蔬菜供貨量。
通過對天數(shù),供貨量,供貨次數(shù)進行可視化分析,可知市場供貨量充足。如圖5 所示,可以根據(jù)價格的價格波動趨勢在適當?shù)狞c購入適量所需蔬菜水果,使利益最大化。

圖5 供貨量
本文通過對蔬菜價格的分析,可以給商戶或個人提供買菜建議,運用相關(guān)的專業(yè)知識對以往數(shù)據(jù)進行橫向和縱向比較,發(fā)現(xiàn)高點和低點以及平均點等,商戶或個人可以根據(jù)價格的價格波動趨勢在適當?shù)狞c購入適量所需蔬菜水果。使利益最大化。另外還可觀察市場供貨量數(shù)據(jù),為市場變動需求做好應(yīng)變。本文使用數(shù)據(jù)采集技術(shù)很好地利用數(shù)據(jù)解決實際生活問題。方便菜農(nóng)以及批發(fā)商對各地蔬菜價格的實時了解做出合理的決策。