“北京新发地”瓜果蔬菜信息数据爬取及可视化分析
2022-07-15庞笑笑赵广宣户庆凯
◎庞笑笑 赵广宣 户庆凯
本文实现了瓜果蔬菜价格等信息的数据采集、数据处理、数据存储、分析和可视化。主要研究内容是利用数据采集技术对“北京新发地农产品批发市场”网站的瓜果蔬菜价格信息数据进行爬取,通过对市场的价格和种类进行数据分析,可以预测之后几天的蔬菜水果价钱的波动,购买蔬菜的量的多少提供帮助。方便商家或用户批发购买瓜果蔬菜时做出更合理的决策,使利益最大化。另外还可观察市场供货量数据,为市场变动需求做好应变。
引言
近年来,随着大数据、物联网、云计算、移动互联、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 多家农产品批发市场中,新发地市场交易量、交易额名列前茅,是首都名副其实的大“菜篮子”和大“果盘子”。“新发地”品牌已成为中国农产品的代名词,新发地市场的农产品价格指数成为引领中国农产品市场价格的风向标和晴雨表。
利用数据采集技术对“北京新发地农产品批发市场”网站的瓜果蔬菜价格信息数据进行爬取,通过对市场的价格和种类进行数据分析,可以预测之后几天的蔬菜水果价钱的波动,买蔬菜的量的多少提供帮助。为商家或用户批发购买瓜果蔬菜提供更优的选择。实现了蔬菜水果价格等信息的数据采集、数据处理、数据存储、分析和可视化。
通过使用爬虫技术,能在短时内提取有价值的信息数据。得到有价值的数据后,根据数据的形式进行整理,运用HTML、CSS、JavaScript、Flask 框架、Echarts、WordCloud 等技术对数据进行可视化展现。将数据进行完整地分析,有利于更好地利用数据解决实际问题。本文将对基于Python 的聚焦式网络爬虫设计与实现以及分析菜市场价格数据并可视化地展出使结果更直观化。
二、数据采集
1.思路设计。
访问目标网站,利用浏览器在北京新发地主页中选择价格行情的历史数据,查看某一月份的最高价格、最低价格、平均价格以及记录状况。按F12 查看网页源代码,将想要爬取的内容的Xpath 路径复制下来,在桌面创建一个文本文档用于放置所复制的Xpath 路径,在后面编写程序代码时会用到,用Xpath 对HTML 进行解析。最后将爬取到的数据保存为csv 文件并将数据进行分析可视化展示。
2.爬取过程。
爬取目标网站为北京新发地农产品批发市场官网(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 类型数据,对返回的关键字进行初始化。具体代码如下所示。
三、数据处理与分析
1.将数据写入CSV 文件并存储至本地。
获取到的数据会以指定格式存放。由于CSV 文件使数据交换更容易,故采用CSV 的形式进行存储。考虑到后边对数据进行分析、数据可视化等问题,所以采用一次性写入的方法进行。具体实现代码如下:
2.数据可视化分析。
对目标数据进行整理,通过tableau 软件工具,对爬取的半个月蔬菜价格信息进行分析。
(1)平均价格分析。
对半个月的蔬菜、水果平均价格数据进行分析,如图2 所示。大部分时间处于稳定状态,只有5 月10 日的价格有个突变上升状态。
图2 蔬菜水果平均价格
(2)蔬菜单个平均价格。
用气泡图来图示各种蔬菜的平均价格。气泡越大表示价格越高。如图3 所示,通过对平均价格和蔬菜总类发现,鸡蛋的平均价格较高。购买鸡蛋是要慎重。不是购入的最佳时机,可再等等。
图3 蔬菜平均价格
(3)平均价格,最低价格,最高价格对比分析。
通过对平均价格,最低价格,最高价格的对比发现,在5月10 日的时候菜价达到了最高价格。现在的蔬菜价格趋于平稳,可以适量的增加买菜的数量。如图4 所示。
图4 平均价格,最低价格,最高价格对比
(4)蔬菜供货量。
通过对天数,供货量,供货次数进行可视化分析,可知市场供货量充足。如图5 所示,可以根据价格的价格波动趋势在适当的点购入适量所需蔬菜水果,使利益最大化。
图5 供货量
四、总结
本文通过对蔬菜价格的分析,可以给商户或个人提供买菜建议,运用相关的专业知识对以往数据进行横向和纵向比较,发现高点和低点以及平均点等,商户或个人可以根据价格的价格波动趋势在适当的点购入适量所需蔬菜水果。使利益最大化。另外还可观察市场供货量数据,为市场变动需求做好应变。本文使用数据采集技术很好地利用数据解决实际生活问题。方便菜农以及批发商对各地蔬菜价格的实时了解做出合理的决策。