基于农产品(蔬菜)数据挖掘的分析与实现(Python+Spider)

news2025/1/15 17:13:45

目 录
摘 要 I
Abstract II
1绪论 1
1.1研究背景 1
1.2项目来源 1
1.3研究目的 2
1.3研究现状 2
1.4主要内容及预期目标 3
1.4.1数据挖掘技术简述及优点 3
1.4.2程序设计思路 3
1.4.3节点布置方案 4
1.4.4预期目标 5
2农产品(蔬菜)价格形成机制及影响因素分析 6
2.1蔬菜价格形成机制研究 6
2.2蔬菜价格影响因素分析 6
2.2.1市场内部影响因素 6
2.2.2市场外部影响因素 9
2.3蔬菜价格影响因素的测度 10
2.3.1变量与样本的选择 10
2.3.2模型形式与估计方法 11
2.3.3估计结果分析 11
3农产品(蔬菜)价格数据模型方案及功能分析 13
3.1分析与设计 13
3.2技术路线 13
3.2.1使用工具 13
3.2.2时间序列短期预测方法及模型 14
3.2.3数据采集模块 14
3.2.4功能实现模块 15
3.3数据仓库的组建 16
4农产品(蔬菜)价格短期预测模型的构建和实现 17
4.1 研究方法以及模型的基本原理 17
4.1.1研究方法 17
4.1.2模型的基本原理 17
4.2 估计步骤 19
4.2.1 利用ADF检验序列及其一阶差分的平稳性 19
4.2.2 选择模型的滞后阶数 19
4.2.3 Granger因果检验 20
3.2.4 Johansen协整检验及模型的建立 20
3.2.5误差修正模型的构建及检验 21
4.3 Python数据爬取网站 21
4.4 Python分析思路 21
4.5 Python爬虫源码说明 24
4.5.1首先创建一个Spider 24
4.5.2行情数据 24
4.5.3产地数据 29
4.5.4行情分布 32
4.5.5价格走势 41
4.5.6设计字典 44
4.5.7数据入库 47
总 结 53
参考文献 54
致 谢 55
1.4主要内容及预期目标
1.4.1数据挖掘技术简述及优点
数掘是指从大量的数据中抽取隐含的、不为人知的、有用的信息。数据挖掘是发现以前未知和潜在有趣的过程,在大数据集的模式(Piatetsky Shapiro和Frawley,1991)。“开采”信息,通常表示为数据集的语义结构的模型,其中模型可用于预测或分类的新数据[6]。数据挖掘也能被描述为试图创建一个数据库中描述的复杂世界的简单的模型,因而我们也可以说数据挖掘是处理大量信息的方法,并且它有助于比人更快的速度发现有用的信息[7]。数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现数据挖掘[8]。
1.4.2程序设计思路
在农产品(蔬菜)的数据挖掘数据处理中,我们首先要寻找到足够的大量的农产品相关的数据信息的来源,因为拥有大量的数据信息是数据挖掘和数据处理的基础。其次是我们要做一些数据的准备:选择数据,就是确定待挖掘的数据的目标;数据预处理:研究数据的质量,确定将要进行的数据类型;数据转换:就是转换成一个分析模型。然后进行数据的挖掘:选择合适的挖掘算法。最后就是结果分析,主要是对提取的数据信息的可靠性、有效性等进行评估。
3农产品(蔬菜)价格数据模型方案及功能分析
3.1分析与设计
数据信息模块当中的各种不同农产品数据的类型的数据采集环境中的数据来自农产品网站,然后再把数据信息模块中的数据经过Python工具进行处理,再把模块上的处理过的数据,通过组建的爬虫网络进行数据传输,将数据发送给用户;用户模块接收Python工具模块发送过来的数据,并将这些数据进行处理、分析、整合,由结果分析模块把处理出来的数据经过结果分析模块将数据显示出来;结果分析模块通过建立的后台数据库将数据进行存储。设计的总体结构图如图3所示。
在这里插入图片描述

图3 总体结构图
3.2技术路线
3.2.1使用工具
(1)Python编程语言
(2)再用Hadoop处理数据
(3)MySQL数据库
(4)Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架
3.2.2时间序列短期预测方法及模型
随着计量经济建模理论的发展与完善,时间序列分析与预测得到了广泛应用。目前,常用的时间序列短期预测方法与模型主要有时间趋势外推
法、季节分解法、指数平滑法和 Box Jenkins 法。
趋势外推法。当时间序列具有某种上升或下降的趋势,并且无明显的季节波动时,通常采用简单趋势外推预测模型,主要包括多项式曲线预测模型、指数曲线预测模型、对数曲线预测模型、生长曲线预测模型等 4种。当既有某种上升或下降趋势,又存在季节性波动时,需要加入季节虚拟变量。常用方法有截距变动模型、斜率变动模型、截距和斜率同时变动模型。
季节分解法。将影响时间序列变化的因素分为 4 种:长期趋势因素( trend,T ) ,表示随着时间变化按照某种规律稳步上升、下降或保持在某一水平上; 季节变动因素( seasonal,S) ,表示在 1 个年度内依一定周期规律性变化; 循环变动因素( circle,C) ,表示以若干年为周期的变动变化; 不规则变动因素 ( irregular,I) ,表示不可控的偶然因素,如地震、水灾、恶劣天气、罢工和意外事故等。季节分解常用模型有:乘法模型( Y = T SCI ) 和加法模型( Y =T + S + C+ I) 。
指数平滑法。以本期实际数和本期预测数为基础,引入 1 个简化加权因子( 平滑系数) 的一种指数平滑预测法。
Box Jenkins 法。如果时间序列是非平稳的,先将序列变成平稳序列,变化后的新序列仍保持原时间序列的随机性。主要模型包括:自回归模型( AR) 、移动平均模型( M A) 、自回归移动平均模型( ARMA) 或差分自回归移动平均模型( ARIM A 或SARIM A) 。

 # -*- coding: utf-8 -*-
importscrapy
frommySpider.items import MyspiderChanDi
fromcopy import deepcopy


classChandiSpider(scrapy.Spider):
    name = 'chandi'
    allowed_domains = ['hangqing.ymt.com']
    start_urls =['http://hangqing.ymt.com/chandi_8031_0_0']

    #省份数据
    def parse(self, response):
        #产地列表
        li_list =response.xpath("//div[@class='fl sku_name']/ul//li")
        for li in li_list:
            items = MyspiderChanDi()
           items["ymt_province_href"] =li.xpath("./a/@href").extract_first()
            items["ymt_province_id"]= items["ymt_province_href"].split("_")[-1]
            items["ymt_province_name"]= li.xpath("./a/text()").extract_first()

            yield scrapy.Request(
               items["ymt_province_href"],
               callback=self.parse_city_detail,
                meta={"item":deepcopy(items)}
            )

    #城市数据
    def parse_city_detail(self, response):
        item = response.meta["item"]
        option =response.xpath("//select[@class='location_select'][1]//option")

        if len(option) > 0:
            for op in option:
                name = op.xpath("./text()").extract_first()
                if name != "全部":
                   item["ymt_city_name"] = name
                   item["ymt_city_href"] =op.xpath("./@data-url").extract_first()
                   item["ymt_city_id"] = item["ymt_city_href"].split("_")[-1]
                    yield scrapy.Request(
                       item["ymt_city_href"],
                       callback=self.parse_area_detail,
                        meta={"item":deepcopy(item)}
                    )
        else:
            item["ymt_city_name"] =""
            item["ymt_city_href"] =""
            item["ymt_city_id"] = 0
            yield scrapy.Request(
               item["ymt_city_href"],
               callback=self.parse_area_detail,
                meta={"item":deepcopy(item)}

            )

    #县市数据
    def parse_area_detail(self, response):
        item = response.meta["item"]
        area_list =response.xpath("//select[@class='location_select'][2]//option")

        if len(area_list) > 0:
            for area in area_list:
                name =area.xpath("./text()").extract_first()
                if name != "全部":
                   item["ymt_area_name"] = name
                   item["ymt_area_href"] = area.xpath("./@data-url").extract_first()
                   item["ymt_area_id"] =item["ymt_area_href"].split("_")[-1]
                    yield item
        else:
            item["ymt_area_name"] =""
            item["ymt_area_href"] =""
            item["ymt_area_id"] = 0
            yield item

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/19218.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

少儿编程 电子学会图形化 scratch编程等级考试四级真题答案解析(选择题)2022年9月

2022年9月Scratch四级真题解析 选择题(共15题,每题2分,共30分) 1、运行下列程序,说法正确的是 A、列表中的数字全部小于11 B、列表的长度为10 C、变量i最终值为20 D、列表中有大于10的数字 答案:D 考点分析:考查积木综合使用,重点考查列表积木的使用,开始向列表…

4.1.2 类非静态成员函数返回值转换与NRV优化

类非静态成员函数返回值转换与NRV优化 下述代码即是Point3d的整体函数原型,对于第33行的调用,正常理解即会首先调用默认构造函数生成一个临时对象,进而调用拷贝构造函数将临时对象拷贝给p2。但是实际上任何编译器都不会采用上述的调用方法&a…

四十七、Fluent近壁面处理

0. 前言 今天这篇文章,我们介绍一下近壁面处理的方式来求解湍流壁面物理规律。 前文四十五、四十六及本文四十七这三篇文章可以说是非常详细而系统的把壁面函数及相关理论全都介绍了一遍,大家可以参考进行设置。也希望大家能多多转发,点赞呀&…

MySQL中的锁机制、MyISAM表锁、MyISAM表级锁争用情况、MyISAM并发插入Concurrent Inserts、MyISAM的锁调度

前言: 关于读锁、写锁、乐观锁、悲观锁、行锁、表锁的理解可以看看以前我写的: 读锁、写锁、乐观锁、悲观锁、行锁、表锁 内部锁:在MySQL服务器内部执行的锁,以管理多个会话对表内容的争用。这种类型的锁是内部的,因为它完全由MySQL服务器执行,不涉及其他程序。 表级锁:…

JAVA中使用最广泛的本地缓存?Ehcache的自信从何而来 —— 感受来自Ehcache的强大实力

大家好,又见面了。 作为《深入理解缓存原理与实战设计》系列专栏,前面几篇文章中我们详细的介绍与探讨了Guava Cache与Caffeine的实现、特性与使用方式。提到JAVA本地缓存框架,还有一个同样无法被忽视的强大存在 —— Ehcache!它…

Windows同时安装两个版本JDK,并实现动态切换JAVA8或者JAVA11

一、需求 对于Java开发工程师来说,可能手头上同时负责不同的项目,但是由于历史的原因,Java版本可能没有做到统一升级,有的项目是使用JDK8版本,有的项目使用的是JDK11的版本,那这时候就需要我们电脑同时兼容…

html2canvas 行内元素边框样式生成问题解决(根据文字生成图片)

项目场景: 实现一个基于一段文字生成一张图片的需求,其中,有一段文字需要下划线,但是不是text-decoration:underline;的样式,因为下划线要距离字一段距离,接到这个方案时,第一时间想到的就是ht…

在x86的Docker中构建TVM的ARM环境

文章目录前言1. 加载arm-ubuntu镜像2. 安装acl库3. 编译arm运行时4. 编译在x86运行在arm4.1 在x86的环境中构建arm的编译环境4.2 测试x86-ubuntu与arm-ubuntu能否ping通4.3 调用RPC4.4 ACL的使用5. arm版的tvm编译和运行时环境5.1 构建arm版的tvm编译和运行时环境5.2 关于ubunt…

卷积版wav to image 训练实例

🍿*★,*:.☆欢迎您/$:*.★* 🍿 目录 背景 正文 总结 背景描述

Java语言知识大盘点(期末总复习)二

🌹作者:云小逸 📝个人主页:云小逸的主页 📝Github:云小逸的Github 🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前…

2022年珠海市第三届半导体行业集成电路测试工竞赛成功举办

11月19日,2022年珠海市第三届职业技能大赛暨香洲区第七届“香洲工匠”职业技能竞赛半导体行业集成电路测试工竞赛在珠海这片创新热土上成功举办,48支集成电路高素质技能人才队伍齐聚香江,同台竞技,碰撞出绚烂的“芯”火花。 香洲区…

Spring之Gateway网关

前言 什么是网关?简单理解就是我们所有服务的入口,当我们使用了微服务以后,每个服务都会有一个对应的接口,比如我们有用户服务,订单服务等等,如果没有网关的话,那么前端是这样调用的 很明显app和…

Design a TinyURL

title: Notes of System Design No.02 — Design a TinyURL date: 2022-05-05 13:23:57 tags: 系统设计 categories: 系统设计 description: " Design a TinyURL" 1.Functional Requirements 1.长链接->短链接(写) 2.短链接->长链接(读) 3.可以设置超时时间…

unittest框架

unittest框架1.通过unittest框架创建测试2.通过unittest框架添加断言3.自动化用例管理TestLoader类的用法4.unittest智能封装等待1.通过unittest框架创建测试 1.必须继承于unittest.TestCase类 2.可以定义setUp和tearDown方法进行初始化,每条测试用例开始或结束会执…

谷歌浏览器-chrome浏览器占用电脑CPU过高、容易崩溃的解决办法

一、问题背景 最近特别难受的一点——谷歌浏览器总是莫名其妙崩溃,而且明明是只开了两三个标签页的情况下。 不管是谷歌自己的任务管理器,还是win10自带的任务管理器;在崩溃情况下,谷歌浏览器的电脑cpu占用率高达80以上。 网上…

Java01-JDK1.8下载安装教程(win11版)

文章导航JDK 1.8 官网下载(下载慢)百度网盘下载(下载快)安装过程JDK环境配置教程验证JDK是否安装成功使用JDK1.8的原因当下互联网行情以及个人建议JDK 1.8 官网下载(下载慢) 点击跳转至JDK1.8官方网址 32…

暴雪和网易分手百万玩家何去何从

暴雪和网易分手百万玩家何去何从 这两天看到很多报道说网易与暴雪分手的消息,作为一个游戏玩家我甚是感到很意外。 看了不少相关的报道消息才有了今天的这篇文章 暴雪和其旗下《魔兽世界》等游戏陪伴了我们这一代人成长,或许终究不属于这个时代。看到暴…

智慧路灯解决方案-最新全套文件

智慧路灯解决方案-最新全套文件一、建设背景二、思路架构三、建设方案四、获取 - 智慧路灯全套最新解决方案合集一、建设背景 智慧城市是利用信息通信技术感知、分析、整合城市运行核心系统的各种关键信息,从而改善民生、环保、公共安全、城市服务、智能响应包括工…

【Java八股文总结】之反射

文章目录Java反射一、泛型1、何为泛型?2、泛型通配符Q:泛型擦除是什么?3、泛型上限和下限二、反射1、何为反射?2、反射有什么用?3、反射应用场景有哪些?Q:反射的优缺点?4、反射获取C…

三极管集电极电阻的作用

放大状态:电流信号转变为电压信号 饱和状态 ;发射极正偏,集电极反偏 当有无电阻的作用。当集电极有电阻时,可以得到随IC电流变化的电压信号,当工作在饱和状态。集电阻电阻越大。越容易进入饱和状态.当Ib有个小电流,Ic会出现大的…