摘要
随着人们环保意识的不断提高和政府的大力支持,新能源汽车市场逐渐壮大并引起了人们的广泛关注。为了分析新能源汽车的销售情况,本系统整体使用Django+Vue框架来链接前后端,以Python编程语言为基础,使用爬虫技术收集各大品牌新能源汽车销售数据,将销售数据存储在MySQL数据库,再使用ECharts技术对新能源汽车销售数据进行可视化展示。通过分析新能源汽车的车系销量排名、车系投诉信息、车系降价排行榜、汽车品牌数量分布、价格范围、具体车辆投诉信息、具体车辆投诉量走势以及具体车辆销量走势等,最终完成对新能源汽车市场的全面了解,为新能源汽车购买者、新能源汽车厂家提供有价值的参考依据。
1 技术
- 爬虫
- MySQL
- Django+Vue框架
- ECharts可视化技术
1.1 爬虫
爬取过程中首先定位懂车帝网站的url:https://www.dongchedi.com/,使用start_requests方法从dataset/allBrands.json文件中加载所有品牌信息,过滤出具有brand_name字段的品牌,对每个品牌,生成一个Scrapy请求,并将品牌信息作为meta数据传递给回调函数。
class DcdSpider(scrapy.Spider):
name = "dcd"
url = "https://www.dongchedi.com/auto/library-brand/{}"
def start_requests(self):
with open("dataset/allBrands.json", encoding="utf-8") as f:
allBrands = json.load(f)
allBrands = filter(lambda x: x["info"].get("brand_name"), allBrands)
for brand in allBrands:
yield scrapy.Request(
self.url.format(brand["info"]["brand_id"]),
callback=self.parse,
meta=dict(brand=brand),
)
1.2 MySQL
MySQL作为一个成熟的关系型数据库管理系统,提供高效、可靠、稳定的数据存储和管理服务,非常适合用于存储和管理原始数据。可以将MySQL作为数据存储的后端。
部分表结构如图所示:
(1)品牌信息表:主要保存了车辆品牌的信息,包括品牌ID、品牌图片、品牌名称、拼音首字母、上架系列数量。这些信息对于理解汽车特性至关重要。
(2)销量信息表:主要保存新能源汽车销量的信息,包括ID、车系ID、车系名称、月份、全国销量排名、全国销量、上月销量。这些信息对于用