温馨提示:文末有 CSDN 平台官方提供的学长 QQ 名片 :)
1. 项目简介
本项目利用网络爬虫技术从某蔬菜网采集所有农产品的价格数据,包括北京、上海、安徽、湖北等全国所有省和直辖市的农产品价格数据,解析后存储到数据库中。 建立农产品价格数据仓库,以web交互形式对外提供检索服务,并利用 echarts 实现农产品的可视化分析。
本项目近期完成系统迭代,修复网络爬虫,美化前端展示效果等。
基于大数据的农产品价格信息监测分析系统
2. 功能组成
基于大数据的农产品价格信息监测分析系统的主要功能包括:
- 使用Scrapy框架爬取多个农产品价格交易网站进行采集;
- 将爬取到的农产品价格信息等多个重要数据如:品类、产地、时间、价格等存储到数据库中,农产品种类至少20种。
- 使用python/kettle工具对多方数据进行合并清洗整理,建立数据仓库
- 使用echart+web对数据进行可视化检测与分析
- 创建web界面能够注册登录网页,可在爬取到的众多农产品中使用查询产地、查询产品名称等方式搜索和点击选择一种农产品进行分析图查看。
- 具体分析图有:价格变化折线图、产地均价、最高、最低、平均、产品种类和价格关系图、数量分布图、产地价格对比图等10个左右,具体图表内容可以协商。
- 采用机器学习中的回归算法根据大豆和玉米的时间价格对猪肉进行预测。
- 爬虫能自动定时爬取数据添加到数据仓库中。
3. 农产品数据采集
针对某农产品信息网站,利用 request + beautifulsoup 编写原生网络爬虫,完成数据的采集和清洗,并存储到数据库中:
for province in provinces:
print("===>", province['short_name'])
for product in products:
params = {
"name": product,
"cycle": "近一年",
"provinceCode": province['province_id'],
"order": "ASC"
}
base_url = xxxxxx
url = base_url + urlencode(params, encoding='utf8')
resp = requests.post(url, headers=headers, json=json.dumps(params, ensure_ascii=False), verify=False)
resp = resp.json()
dates = resp['content']['x']
prices = resp['content']['y']
if not prices:
print(product, 'no data!')
else:
print(province['short_name'], product, prices)
for date, price in zip(dates, prices):
price = float(price)
low_price, high_price = (1 - random.random() / 5) * price, (1 + random.random() / 5) * price
product_info = [product, province['short_name'], low_price, high_price, price, date]
# 判断当前数据是否存在数据库中,避免重复采集
......
insert_product_infos.append(product_info)
cursor.executemany(insert_sql, insert_product_infos)
conn.commit()
insert_product_infos.clear()
4. 基于大数据的农产品价格信息监测分析系统
4.1 系统首页注册登录
4.2 全国各地区不同农产品价格数据分析
4.3 不同农产品价格价格对比分析
4.4 基于ARIMA自回归模型的农产品预测
5. 总结
本项目利用网络爬虫技术从某蔬菜网采集所有农产品的价格数据,包括北京、上海、安徽、湖北等全国所有省和直辖市的农产品价格数据,解析后存储到数据库中。 建立农产品价格数据仓库,以web交互形式对外提供检索服务,并利用 echarts 实现农产品的可视化分析。
欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。技术交流、源码获取认准下方 CSDN 官方提供的学长 QQ 名片 :)
精彩专栏推荐订阅: