基于Python的汽车之家新车数据爬取与分析_第1页
基于Python的汽车之家新车数据爬取与分析_第2页
基于Python的汽车之家新车数据爬取与分析_第3页
基于Python的汽车之家新车数据爬取与分析_第4页
基于Python的汽车之家新车数据爬取与分析_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南商务职业技术学院毕业设计

目录

1引言1

1.1项目背景1

1.2开发环境与工具1

1.2.1Python简介1

1.2.2MySQL简介1

2需求分析2

2.1可行性需求分析2

2.2数据采集目标分析2

2.2.1车辆信息采集2

2.2.2交易信息采集2

2.2.3用户行为信息采集3

2.2.4竞争对手信息采集3

2.3关键技术分析3

2.3.1网络爬虫技术3

2.3.2数据清洗与处理技术3

2.3.3数据分析与挖掘技术4

2.3.4数据可视化技术4

3数据采集4

3.1目标网站分析4

3.2数据字段分析4

3.3爬虫编程实现5

3.4数据存储6

4数据清洗与处理7

4.1数据清洗7

4.2数据转换7

4.3数据储存8

4.4编程实现8

5数据统计与分析9

5.1数据准备9

5.2数据探索性分析9

5.3数据可视化10

5.3.1车辆价格区间分析12

I

湖南商务职业技术学院毕业设计

5.3.2车型与优惠力度分析12

5.3.3车辆销售前五的最高最低成交价13

5.3.4销售量前五的市场占比分析13

6小结与展望14

6.1项目成果总结14

6.2经验教训与改进15

6.3未来工作展望15

参考资料16

II

湖南商务职业技术学院毕业设计

基于Python的汽车之家新车数据爬取与分析

1引言

在信息技术飞速发展的今天,数据已经成为了一种宝贵的资源。对于汽车行

业而言,新车数据的获取与分析对于市场研究、竞争策略制定以及消费者行为理

解等方面都具有重要意义。汽车之家网作为国内领先的汽车信息服务平台,其新

车数据丰富、更新及时,是众多汽车行业从业者和研究者关注的重要数据源。因

此,本项目旨在通过Python编程语言和相关工具,爬取汽车之家网上的新车数

据,并进行初步的分析和处理。

1.1项目背景

随着互联网的普及和大数据技术的发展,网络爬虫作为一种自动化获取网页

信息的技术手段,被广泛应用于各个领域。在汽车行业,通过对汽车之家等汽车

信息网站的数据爬取,可以获取到大量关于新车价格、配置、销量等方面的信息。

这些信息对于汽车厂商的市场定位、产品改进以及销售策略的制定都具有重要的

参考价值。同时,对于消费者而言,通过对这些数据的分析,可以更好地了解市

场动态,为购车决策提供数据支持。

1.2开发环境与工具

为了保证项目的顺利进行,需要选择合适的开发环境和工具。下面将简要介

绍本项目中使用的Python编程语言、MySQL数据库以及JupyterNotebook开发

环境。

1.2.1Python简介

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。它具

有语法简洁、易读易写、功能强大且丰富的库支持等特点,使得它在数据分析、

人工智能、网络爬虫等领域得到了广泛应用。在本项目中,我们将使用Python

编写爬虫程序,实现对汽车之家网新车数据的爬取和处理。

1.2.2MySQL简介

MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前

属于Oracle旗下产品。它使用结构化查询语言(SQL)进行数据库管理,具有体

积小、速度快、成本低等特点。在本项目中,我们将使用MySQL数据库存储爬

取到的新车数据,以便后续的分析和处理。

1

湖南商务职业技术学院毕业设计

2需求分析

在进行汽车之家网新车数据爬取与分析之前,必须对项目的需求进行详细分

析,确保爬取的数据既满足后续的数据处理与分析需求,又遵守法律法规和道德

标准。需求分析通常包括可行性分析、目标分析等方面。

2.1可行性需求分析

在进行新车数据爬取之前,首先需要分析项目的可行性,主要包括以下几个

方面:

技术可行性:评估是否拥有或能够获得所需的技术和工具,以及团队是否具

备相关的技术能力来执行项目。对于本项目来说,技术可行性主要考虑Python

爬虫技术的成熟度和团队对Python、网络请求处理、HTML解析等技术的掌握

程度。

法律可行性:分析项目是否违反了版权法、反不正当竞争法等相关法律法规。

由于本项目涉及从第三方网站爬取数据,因此需要特别关注目标网站的robots.txt

文件,确保爬取行为不违反网站的爬取策略,同时不侵犯其版权等合法权益。

经济可行性:评估项目成本是否在经济上可接受,并考虑项目的经济效益。

经济可行性分析需要考虑购买和维护相关硬件、软件以及数据存储的成本,同时

预估项目能够带来的收益或节约的开支。

操作可行性:判断项目实施后是否能够方便地进行数据的管理和维护,以及

是否有足够的人力资源来支持项目的持续运营。

2.2数据采集目标分析

数据采集目标分析旨在明确需要从汽车之家网站爬取的具体数据类型和目

标页面。

2.2.1车辆信息采集

车辆信息采集是本项目的核心需求之一。具体目标包括但不限于:

车辆基本信息:车型、车辆图片等。

购车价格:最低价格、最高价格、最高节省。

2.2.2交易信息采集

交易信息采集可以帮助了解市场动态和销售情况。具体包括:

新车交易数据:新车成交量、成交价格、交易地区分布等。

优惠政策与活动信息:限时优惠、贷款方案、购车礼包等。

2

湖南商务职业技术学院毕业设计

用户评价与口碑:真实购车用户的评价和反馈,对于消费者决策具有重要参

考价值。

2.2.3用户行为信息采集

用户行为信息可以为营销策略的制定提供数据支持,需要关注的数据点有:

用户访问统计:用户访问量、访问时长、跳出率等。

用户兴趣偏好:用户对不同车型和配置的浏览、搜索和对比行为。

购车意向与咨询:用户在线咨询记录、预约试驾和意向订单等信息。

2.2.4竞争对手信息采集

竞争对手信息采集对于制定竞争策略和差异化服务至关重要,主要采集内容

包括:

竞品车型信息:竞争对手同类车型的基本信息和价格配置等。

市场占有率与排名:各竞争对手在不同细分市场的销售数据和市场排名。

竞品营销策略分析:竞争对手的广告投放、线上线下活动、促销策略等。

用户满意度调查:竞品用户的评价反馈,了解竞品的优缺点和用户满意度情

况。

2.3关键技术分析

在项目的实施过程中,将会涉及一系列的关键技术,这些技术对于项目的成

功至关重要。下面将对本项目中使用的关键技术进行详细分析。

2.3.1网络爬虫技术

网络爬虫技术是本项目的基础,它负责自动化地从汽车之家网站爬取所需的

新车数据。爬虫程序需要处理网络请求、HTML解析、数据提取和存储等任务。

在实现过程中,我们将利用Python的requests库来发送网络请求,使用

BeautifulSoup或lxml等库来解析HTML文档,提取所需的数据字段。同时,为

了遵守网站的访问规则,爬虫程序还需要实现适当的请求延时、IP代理等策略,

以避免对目标网站造成过大的访问压力。

2.3.2数据清洗与处理技术

爬取到的原始数据往往存在格式不规范、缺失值、异常值等问题,需要进行

数据清洗和处理才能用于后续的分析。数据清洗包括去除无关字符、转换数据类

型、处理缺失值和异常值等操作。在本项目中,我们将使用Python的pandas库

来进行数据清洗和处理工作。pandas提供了丰富的数据操作功能,可以方便地对

3

湖南商务职业技术学院毕业设计

数据进行筛选、转换、填充缺失值等操作。此外,我们还需要根据实际情况编写

自定义的清洗规则,以确保数据的准确性和一致性。

2.3.3数据分析与挖掘技术

数据分析与挖掘是项目的核心环节,它负责对清洗后的数据进行深入的分析

和挖掘,以发现数据中的潜在规律和有价值的信息。在本项目中,我们将使用

Python的数据分析库(如numpy、pandas等)来进行数据的统计分析、相关性

分析等操作。同时,为了挖掘数据中的潜在模式,我们还将引入机器学习算法(如

聚类分析、分类算法等)来对数据进行进一步的挖掘和分析。这些分析结果将为

后续的决策制定提供有力的数据支持。

2.3.4数据可视化技术

数据可视化是展示数据分析结果的重要手段,它可以将复杂的数据以直观、

易理解的方式呈现出来。在本项目中,我们将使用Python的可视化库(如

matplotlib、seaborn等)来实现数据的可视化展示。通过绘制柱状图、折线图、

散点图等图表,我们可以清晰地展示数据的分布特征、变化趋势以及不同变量之

间的关系。这些可视化结果将有助于我们更好地理解数据和分析结果,为后续的

决策制定提供直观的参考依据。

3数据采集

数据采集是本项目的基础工作,它涉及对目标网站的分析、确定需要爬取的

数据字段、编写爬虫程序以及数据存储等步骤。下面将详细介绍这些步骤的实现

过程。

3.1目标网站分析

在进行数据采集之前,首先需要对目标网站——汽车之家进行详细的分析。

这包括了解网站的页面结构、数据呈现方式、网络请求特点等。通过分析网站的

URL规律、页面源码结构以及Ajax请求等,我们可以确定如何有效地从网站中

提取所需的数据。同时,还需要关注网站的反爬虫策略,如robots.txt文件、验

证码机制、登录验证等,以确保我们的爬虫程序能够合法、稳定地运行。

3.2数据字段分析

在明确了目标网站的特点后,接下来需要确定具体需要爬取的数据字段。根

4

湖南商务职业技术学院毕业设计

据项目的需求分析,我们需要爬取的数据字段包括车辆的基本信息(车型、价格

等)、配置参数(如发动机类型、最大功率等)、交易信息(如成交量、优惠政

策等)以及用户行为信息(如访问量、用户评价等)。这些字段的确定将直接影

响到后续爬虫程序的编写和数据存储的设计。以下为网站内容:

图3-1目标网站

3.3爬虫编程实现

在确定了需要爬取的数据字段后,就可以开始编写爬虫程序了。我们将使用

Python作为编程语言,利用其强大的网络请求处理库(如requests)来编写爬

虫程序。爬虫程序的主要任务包括发送网络请求获取页面内容、解析页面提取所

需数据字段、处理异常情况和反爬虫策略等。在编写爬虫程序时,需要特别注意

遵守网站的访问规则,合理设置请求延时和并发量,以避免对目标网站造成过大

的访问压力。车辆信息采集代码如下:

importrequests

importjson

urls=[]

#爬取30页数据

foriinrange(30):

#获取网页地址

urls.append(

5

湖南商务职业技术学院毕业设计

"/handler/other/getdata?__action=dealer.gets

eriesprices&brandid=0&cityId=110100&serieslevel=0&PriceLevel=0&minPrice

=0&maxPrice=0&OrderType=0&pageindex="

+str(i+1)+"&pageSize=24&imgSize=240&_encoding=utf8")

#解析数据

request=requests.get(urls[0])

dict_all_data=json.loads(request.text)

list_car_data=dict_all_data.get("result").get("list")

withopen("汽车之家数据.csv",'w',encoding='utf-8')asf:

f.write("车型,最低价,最高价,最高节省,车辆图片网址\n")

forurlinurls:

request=requests.get(url)

dict_all_data=json.loads(request.text)

list_car_data=dict_all_data.get("result").get("list")

#车型,最低价,最高价,最高节省,车辆图片网址

foriinlist_car_data:

SeriesName=i.get("SeriesName")

MinOriginalPrice=i.get("MinOriginalPrice")

MaxOriginalPrice=i.get("MaxOriginalPrice")

MaxPriceOff=i.get("MaxPriceOff")

SeriesImg=i.get("SeriesImg")

data=

f"{SeriesName},{MinOriginalPrice},{MaxOriginalPrice},{MaxPriceOff},{Ser

iesImg}\n"

withopen("汽车之家数据.csv",'a',encoding='utf-8')asf:

f.write(data)

3.4数据存储

我们将爬取到的数据存储在CSV文件中,之后的数据清洗和分析可以使用

Pandas库处理。当然我们也使用MySQL数据库作为数据存储方案,在存储数据

时,需要设计合理的数据库表结构来存储不同字段的数据,并考虑数据的一致性

和完整性。同时,为了提高数据存储的效率和可靠性,我们还可以采用一些优化

6

湖南商务职业技术学院毕业设计

措施,如索引优化、分表分库等。此外,在数据存储过程中还需要注意数据的安

全性和隐私保护问题,确保存储的数据不被非法访问和泄露。

表3-1数据库设计

列名数据类型描述

idINT主键,自增ID

series_nameVARCHAR(255)车型

min_original_priceVARCHAR(255)最低价

max_original_priceDECIMAL(16,2)最低价

max_price_offDECIMAL(16,2)最高节省

series_imgVARCHAR(255)车辆图片网址

4数据清洗与处理

在数据采集完成后,原始数据往往包含空值、异常值、重复值以及缺失值等

问题,这些问题会直接影响到后续数据分析的准确性。因此,数据清洗与处理是

确保数据质量的关键步骤。

4.1数据清洗

数据清洗的主要目的是消除错误和不一致性,处理无效值和缺失值等。对于

本项目,数据清洗涉及以下几个方面:

去除无关字符和HTML标签:原始数据中包含网页的HTML标签、广告链

接等无关字符,需要使用正则表达式或HTML解析器将其去除。

处理缺失值:对于缺失的数据字段,需要决定是保留、删除还是填充。填充

策略可以是使用平均值、中位数、众数或基于算法的预测值等。

数据类型转换:确保所有数据字段都存储为正确的数据类型,如将文本表示

的数字转换为整数或浮点数。

识别和处理异常值:使用统计方法(如Z-score、IQR等)识别异常值,并

决定是保留、替换还是删除这些异常值。

去重处理:对于重复的数据行,需要进行去重处理,以确保数据的唯一性。

4.2数据转换

数据转换是将原始数据转换成更适合于分析和挖掘的形式。这涉及以下几个

方面:

特征工程:创建新的特征以提高模型的性能,这包括计算衍生变量、合并多

个特征等。

7

湖南商务职业技术学院毕业设计

归一化/标准化:将数值特征缩放到相同的范围,以减少由于特征尺度差异

造成的模型偏差。

编码分类变量:将分类变量(如颜色、品牌等)转换为模型可以处理的数值

形式,如独热编码(One-HotEncoding)或标签编码(LabelEncoding)。

4.3数据储存

清洗和处理后的数据需要妥善储存,以便后续的数据分析和挖掘。通常,数

据可以储存为CSV文件、数据库表或专门的数据存储格式(如Parquet、HDF5

等)。对于本项目,考虑到后续需要进行复杂的数据查询和分析,将清洗后的数

据存储在MySQL数据库或类似的关系型数据库中。

4.4编程实现

在Python中,数据清洗和处理可以使用pandas库来实现。pandas提供了丰

富的数据结构和函数,可以方便地进行数据清洗、转换和储存等操作。以下是一

个简单的示例代码,展示如何使用pandas进行数据清洗:

importpandasaspd

#读取数据到DataFrame中(假设数据已存储在CSV文件中)

df=pd.read_csv('./汽车之家数据.csv')

#去除重复行

df["车型"].drop_duplicates(inplace=True)

#处理缺失值(以均值填充为例)

df["最高节省"].fillna(0,inplace=True)

#数据类型转换(将价格字符串转换为浮点数)

df["最高价"]=df['price'].astype(float)

#将处理后的数据储存回数据库或文件中(以储存回CSV文件为例)

df.to_csv('./汽车之家数据.csv',index=False)

通过爬取,我们可以得到的大量数据,部分数据如图4-1所示。

8

湖南商务职业技术学院毕业设计

图4-1数据清洗结果

5数据统计与分析

数据统计与分析是数据挖掘流程中的核心环节,它涉及对清洗后的数据进行

深入探索、理解数据特征、发现数据间的关联和趋势,并最终将这些发现以直观

的方式呈现出来。

5.1数据准备

在进行数据统计与分析之前,首先需要确保数据已经经过清洗和处理,并准

备好用于分析的数据集。这包括选择需要分析的数据字段、处理缺失值、异常值

和数据类型转换等。数据准备的目标是确保数据的质量和一致性,以便后续的分

析能够得出准确和可靠的结论。

5.2数据探索性分析

数据探索性分析(ExploratoryDataAnalysis,EDA)是在不假设数据分布或

9

湖南商务职业技术学院毕业设计

模型形式的情况下,对数据进行初步的分析和理解。EDA的目标是通过统计图

表、摘要统计量和数据分布等手段,揭示数据的内在规律和潜在问题。常见的

EDA方法包括:

描述性统计:计算数据的均值、中位数、众数、标准差等统计量,以了解数

据的集中趋势和离散程度。

数据分布探索:通过绘制直方图、箱线图、QQ图等图表,观察数据的分布

形态、异常值和偏态情况。

相关性分析:计算变量间的相关系数(如皮尔逊相关系数、斯皮尔曼秩相关

系数等),以了解变量之间的线性关系或等级相关性。

分组分析:将数据按照某个或多个变量进行分组,比较不同组之间的差异和

相似性。

5.3数据可视化

数据可视化是将数据以图形或图表的形式展示出来,以便更直观地理解和传

达数据中的信息。在数据统计与分析中,数据可视化起着至关重要的作用。通过

选择合适的图表类型(如折线图、柱状图、散点图、热力图等),可以将复杂的

数据关系简洁明了地呈现出来。此外,还可以使用数据可视化工具(如Matplotlib、

Seaborn、Plotly等)对数据进行动态交互式的可视化探索。

可视化核心代码如下:

importmatplotlib.pyplotasplt

#饼图

ifchart_type==1:

plt.rcParams['font.sans-serif']=['SimHei']

plt.rcParams['axes.unicode_minus']=False

withopen(r"C:\Users\乐观远航\PycharmProjects\pythonProject\汽车之

家各个车系的价格销量与评分.csv",encoding="utf-8")asf:

data=pd.read_csv(f)

#条状图

price_min=data['最低价格'].tolist()[:5]

price_max=data['最高价格'].tolist()[:5]

name=data['汽车系列'].tolist()[:5]

bar_width=0.35

plt.bar(np.arange(5),price_max,label='Max',color='red',

alpha=0.8,width=bar_width)

10

湖南商务职业技术学院毕业设计

plt.bar(np.arange(5),price_min,label='Min',color='blue',

alpha=0.8,width=bar_width)

#添加轴标签

plt.ylabel('万元为单位')

#添加标题

plt.title('汽车系列销售前5的最低最高成交价')

#添加刻度标签

plt.xticks(np.arange(5)+0.17,name)

#为每个条形图添加数值标签

forname,price_maxinenumerate(price_max):

plt.text(name-0.1,price_max+0.55,'%s'%price_max)

forname,price_mininenumerate(price_min):

plt.text(name+bar_width-0.1,price_min+0.55,'%s'%

price_min)

#显示图例

plt.legend(["Max","Min"])

#显示图形

plt.show()

ifchart_type==2:

plt.rcParams['font.sans-serif']=['SimHei']

plt.rcParams['axes.unicode_minus']=False

withopen(r"C:\Users\乐观远航\PycharmProjects\pythonProject\汽车之

家各个车系的价格销量与评分.csv",encoding="utf-8")asf:

data=pd.read_csv(f)

#饼图

name=data['汽车系列'].tolist()[:5]

social=data['销售量'].tolist()[:5]

plt.figure(figsize=(15,8))

explode=[0.0,0.0,0.0,0.0,0.0]

plt.pie(social,explode=explode,labels=name,autopct='%1.1f%%',

startangle=-220,

textprops={'fontsize':20,'color':'black'})

plt.title('销售量前5市场占比分布',fontsize=20)

11

湖南商务职业技术学院毕业设计

plt.axis('auto')

plt.show()

5.3.1车辆价格区间分析

如图5-1所示。

图5-1车辆价格区间饼图

通过得到的饼图我们可以知道,在我们所爬取的684条数据当中,价格在0

元至500000元的车辆种类几乎以碾压之势高于其他车辆。由此可以推断出,大

部分车企生产的车辆是在不断推陈换代的。新一代的车辆开始寄售后,很少有老

款的车辆能继续保值。但是新一代的车辆在性能方面可能不会超过前辈车辆太多,

普罗大众在买车时不必拘泥于新车,老款车辆在性价比方面可能会优越一点。

5.3.2车型与优惠力度分析

如图5-2所示。

图5-2车型与优惠力度柱状图分析

12

湖南商务职业技术学院毕业设计

在我们得到的柱状图当中可以看到,在0元至500000元价格区间之内的捷

豹XFL优惠力度并不高,我猜想这与社会消费能力有关,价格区间在0元-500000

元之内的车辆消费人群更庞大,商家不需要以大量的优惠来吸引客户。价格区间

在2500000元至3000000元的迈巴赫S级优惠力度最低,这是因为高端品牌有自

己的客户群体,这些客户消费能力较高,为了维持品牌的效应,不需要以高优惠

来吸引客户。反而是价格区间在1000000元-1500000元内的奔驰EQSsuv优惠

力度最大,这是因为这个档次的车辆既没有低价格车辆的价格优势,也没有高价

格车辆的特定客户人群,只有加大优惠力度,以此来吸引客户。

5.3.3车辆销售前五的最高最低成交价

如5-3所示。

图5-3车辆销售前五的最高最低成交价

在我们得到的条形图中可以看到,海鸥这辆车虽然价格低廉,但是优惠力度

确是各类汽车当中最少的,而ModelY这辆车虽然看似价格虚高,但如果得到一

个好的优惠政策,它的价格比起宋PLUS新能源高不了多少。群众在买车时不仅

要考虑车辆各种参数配置,也要兼顾各种优惠政策,这样可以做到即兼顾经济,

也能兼顾性能。

5.3.4销售量前五的市场占比分析

如5-4所示。

13

湖南商务职业技术学院毕业设计

图5-4销售量前五的市场占比分析

在我们得到的饼图中可以看到,市场销售量前五的车辆所占份额大体上相差

不大,而这些车辆都属于经济类型的小汽车,由此得出在市场当中,普通群众买

车更看重自己的经济承受能力,对于新能源车辆与普通车辆的差异,则是在能承

受的情况下,更多的按照个人需求与喜好来进行选择。而那些价格更高一些的车

辆,受众群体则远远比不上经济类型的小汽车。

6小结与展望

通过一系列的数据采集、清洗、处理、统计与分析工作,汽车之家网新设数

据爬取与分析取得了显著的成果。首先,我们成功地构建了汽车之家新车数据的

采集系统,成功在汽车之家网上爬取到了我们所需要的数据,然后,通过数据清

洗与处理,我们有了高质量的数据集,为后面的数据分析打下了坚实的基础。通

过数据统计与分析,我们揭示了用户购买车辆,企业生产车辆的侧重。为用户购

买车辆提供了强有力的数据支撑。找到了购买车辆时更经济更实惠的方式。

6.1项目成果总结

在本次项目中,我们成功实现了从目标网站的数据采集、清洗、处理到统计

与分析的完整流程。具体成果包括:

数据采集:针对目标网站,我们设计了高效的爬虫程序,得到了关于汽车之

家网的各个价格区间之内的最优惠的车辆型号,这为我们选择购买车辆时,增添

了更多选择。

数据清洗与处理:对原始数据进行了有效的清洗和处理,去除了噪声和无关

14

湖南商务职业技术学院毕业设计

信息,确保了数据的质量

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论