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


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

圖1 getPriceData。html 的 Preview
通過對異步加載的進行分析發現,網頁采用的是post 請求,返回的是json 類型數據,對返回的關鍵字進行初始化。具體代碼如下所示。


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

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

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

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

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

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