《数据可视化技术》 太平洋汽车销售分析

课 程: 《数据可视化技术》
题 目: 太平洋汽车销售分析
2021年 1月 1 日
前言
这是我学数据分析以来,第一次用python进行数据分析实战,一边做,一遍看我平时做的笔记,查看别人的博客,查看老师的上课回放。同时也新加了很多我重来没有学过的新功能,在经过几天的努力之后,成功完成了这次课程设计,以下所用到的数据均来自我爬取的《太平洋汽车》销售记录,点评和论坛。学习编程真的是这样,如果自己不进行实战操作,永远不知道自己会遇见什么问题,也无从提升自己的能力,这是一个好的开始,还望自己继续努力! 
目录
一、 设计需求 3
二、 项目实现思路及流程 3
1、设计方案 3
2、项目流程图 4
3、操作流程 4
(1)创建爬虫 5
(2)编写要存入数据库的字段item 5
(3)编写蜘蛛文件 5
(4)编写MySQL存储插件 8
三、 成果展示 19
1、工程 19
2、Mysql数据库 20
3、柱图 20
4、玫瑰图 21
5、雷达图 22
6、漏斗图 22
7、散点图 23
8、词云图 23
9、地图分布图 24
10、闪烁图 24
11、最终网页展示 24
四、 收获及心得 26

第一章 设计需求
1.1设计目的
本次课程设计我爬取了太平洋汽车2020年的汽车销售统计情况,分析出轿车和SUV两种车型的销售情况。以及分析车主在选择购买的车型时最看重汽车的那些配置。
1.2系统需求分析
该系统更直观的呈现出太平洋汽车销售车辆的情况,用图表的形式表现出,销量,占比,油耗,全国分布情况。采用柱图,饼图,雷达图,散点图,地区分布图展示。
1.3系统功能分析
(1)爬取销售记录,记录出售汽车的情况。
(2)对各个字段之间的关系进行可视化分析。
(3)通过使用各种不同的图形可视化分析,使得数据更简单易懂,一目了然。
1.4工具分析
(1)Pycharm 采用scrapy框架爬取数据。
(2)使用MYSQL数据库存储爬取的数据。
(3)使用pyechars采用数据库的数据做出可视化图。
(4)用DW将做出的网页合并。

第二章   设计方案

2.1 总体设计方案
(1)先通过网站(https://www.pcauto.com.cn/))去分析需要爬取的有价值数据,确定需要爬取的数据。
(2)通过mysql 数据库去创建相关的数据库,通过确定需要爬取的数据去建立相应的字段和表格,为接下来爬取大量数据存入mysql数据库做好准备。
(3)通过scrapy创建具体的爬虫项目,进行相应网站数据的爬取并将爬取后的数据存入数据库.
(4)通过python的pyecharts库对mysql数据库中的具体数据进行数据可视化操作,生成对应的柱状图,饼形图等多种可视化图形。
(5)通过DW对生成的可视化图形进行整理和布局,建立对应图形的超链接。
2.2数据库的实施:
购买车型 购买时间 地点 价格 价格单位 平均油耗 油耗单位 行驶里程(公里) … 优点 缺点 外观 内饰 空间 配置 动力 操控 油耗
3.1创建爬虫
3.1.1 主爬虫程序spiders.py设计代码:
import scrapy
import re

from prjsinanewsspider.items import PrjsinanewsspiderItem

class SinanewsspiderSpider(scrapy.Spider):

name = 'sinanewsspider'
allowed_domains = ['www.pcauto.com']
#爬取艺人信息
start_urls = ['https://price.pcauto.com.cn/price/q-k75-n2.html']

def parse(self, response):
    for i in range(2,28):
        url=('https://price.pcauto.com.cn/price/q-k75-n')+str(i)+('.html')
        print(url)
        #print('开始')
        yield scrapy.Request(url=url,callback=self.get_url)

#爬取指定单页数据
def get_url(self, response):
    print(response)
    print(1)
    titles=response.xpath("//div[@class='tit']/a/text()").extract()
    print(titles)
    titleurls=response.xpath("//div[@class='tit']/span/a/@href").extract()
    print(titles)
    for title,titleurl in zip(titles,titleurls):
        print(title)
        print(titleurl)
        print("===============")

        yield scrapy.Request(url=('https://price.pcauto.com.cn')+titleurl,callback=self.parse_detail)
        #pass


def parse_detail(self, response):
    item=PrjsinanewsspiderItem()
    print("开始获取内容.......")
    title=response.xpath("//div[@class='title']/h1/text()").get()
    item["chexing"]=title
    print("车型:",title)

    date=response.xpath("//div[@class='list']/ul/li[1]/a[2]/text()").get()
    date=re.sub("\D", "", date)
    print("价格",date)
    item['jiage']=date

    content=response.xpath("//div[@class='strength']/div/div/p/text()").get()
    #content = re.sub("\D", "", content)
    print(content)
    item['pingfen'] = content

    author=response.xpath("//div[@class='strength']/div[2]/div[1]/div/p/text()").get()

    item['pezhi'] = author
    #print(item)

    fenlei = response.xpath("//div[@class='strength']/div[2]/div[3]/div/p/text()").extract()
    item['pingjia'] = fenlei

    pin = response.xpath("//div[@class='strength']/div[2]/div[4]/div/p/text()").get()
    print(pin)
    item['youhao'] = pin

    pan = response.xpath("//div[@class='price']/ul/li/p/a/text()").get()
    print(pan)
    item['leixing'] = pan


    return item

    print("=====================================================")

3.2 item设计:
chexing = scrapy.Field()
jiage = scrapy.Field()
pingfen =scrapy.Field()
pezhi = scrapy.Field()
pingjia= scrapy.Field()
youhao=scrapy.Field()
leixing=scrapy.Field()
3.3mysql数据库连接
self.connect = pymysql.connect(host=‘localhost’, user=‘root’, passwd=‘123456’,db=‘geshou’) # 后面三个依次是数据库连接名、数据库密码、数据库名称

get cursorself.cursor = self.connect.cursor()

4成果展示

4.3柱图
4.4.玫瑰图
4.5 雷达图
4.6漏斗图
4.7散点图
4.8词云图
4.9地图分布图
4.9 闪烁图
4.10 仪表图

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

在这里插入图片描述

4.11 DW综合界面

在这里插入图片描述

四,数据分析
在做出的可视化界面中,发现哈弗H6和日产轩逸占据榜首,切数据量比较大,而且车主评价较高。分析哈弗和轩逸的销售分析以后发现。轩逸以低油耗,故障率低,价格适中。广受大家的喜爱。且在全国各地分布比较广,尤其是沿海地区,占比非常高。并且一年中销量高峰集中在12月前后。可能大家都要买车回家过年。H6项对于轩逸来说,在西北地区的占比要高于轩逸,西北地区可能因为地域的限制。在总销售榜单中,日产销量占据第一位。国产位居后几位。希望国产越做越好。
五.收获及心得
通过这次课程设计,发现自己有很多的问题。在操作等方面不够细致,自己的实战检验还不足。在爬出过程中不够细致和耐心。导致出了好多错,自己的基础知识储备不足,在做项目时只能去慢慢去回顾以前的基础知识。在实战中慢慢积累经验,不断的充实自己。通过这次课程设计,我也更加直观的了解到,我们学习数据分析的意义与价值。通过分析大量的数据,把复杂,无序的数据做出图表,做出傻瓜界面。可以让数据的价值更容易体现出来。

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值