版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖南商务职业技术学院毕业设计
目录
1引言1
1.1项目背景1
1.2开发环境与工具1
1.2.1Python简介1
1.2.2Pandas简介2
1.2.3pyecharts简介2
2需求分析2
2.1可行性需求分析2
2.2采集目标功能分析3
2.3关键技术分析3
2.3.1网络爬虫技术3
2.3.2文件存取技术3
2.3.3可视化技术3
3数据采集4
3.1采集页面分析4
3.2数据解析策略5
3.3翻页策略分析6
3.4多线程爬虫策略8
3.5Main方法9
4数据清洗与处理11
4.1数据清洗的意义11
4.2数据清洗需求11
4.3数据清洗操作12
4.4数据清洗结果13
5数据统计与分析13
5.1数据分析13
5.2数据分析与展示14
I
湖南商务职业技术学院毕业设计
5.2.1统计各个品牌的汽车数量和价格14
5.2.2分析行驶里程与价格的关系15
5.2.3统计燃油与驱动方式的数量15
5.2.4统计每年上牌的汽车的数量和价格17
5.3综述18
6设计小结18
参考资料19
II
湖南商务职业技术学院毕业设计
基于Python的澳康达二手车网数据采集与分析
1引言
二手车市场是一个庞大的市场,数据采集和分析对于了解市场动态、分析
市场趋势和制定决策非常重要。本文选取了澳康达网站的二手车数据进行采集
和分析,旨在探索二手车市场的情况和趋势。数据采集使用Python编写爬虫程
序,通过HTTP请求获取澳康达网站的数据,并将数据存储在本地CSV文件中。
数据分析主要使用Pandas等Python数据处理库进行数据清洗和分析,同时使
用pyecharts等可视化库绘制图表进行数据展示和分析。通过数据采集和分析,
我们可以了解二手车市场的整体情况和趋势,比如不同品牌的销量和平均售价、
不同上牌年份车辆的分布、不同车型的价格分布等。这些信息对于二手车市场
从业者和消费者都具有参考价值。
1.1项目背景
随着互联网技术的发展,越来越多的消费者开始通过互联网平台购买二手
车。澳康达是中国领先的二手车电商平台之一,为消费者提供高质量的二手车
交易服务。在这个背景下,对于澳康达网站的二手车数据进行采集和分析可以
帮助消费者更好地了解二手车市场的行情和趋势,为他们做出更明智的购车决
策提供参考。同时,对于澳康达来说,通过分析二手车市场数据,他们可以更
好地了解市场需求和消费者需求的变化,并根据分析结果做出更好的战略决策,
提高企业的市场竞争力。因此,对于澳康达网站的二手车数据进行采集和分析
具有重要意义。
1.2开发环境与工具
1.2.1Python简介
Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python
语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速
开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于
独立的、大型项目的开发。
Python解释器易于扩展,可以使用C语言或C++(或者其他可以通过C调
用的语言)扩展新的功能和数据类型。Python也可用于可定制化软件中的扩展
1
湖南商务职业技术学院毕业设计
程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机
器码。
1.2.2Pandas简介
pandas是基于NumPy的一种工具,该工具是为解决数据分析任务而创建的。
Pandas纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所
需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你
很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。
1.2.3pyecharts简介
Pyecharts是一款将python与echarts结合的强大的数据可视化工具。使用pyecharts可
以生成独立的网页,也可以在flask,Django中集成使用。
echarts是百度开源的一个数据可视化JS库,主要用于数据可视化。pyecharts是一个
用于生成Echarts图表的类库,实际上就是Echarts与Python的对接。
2需求分析
2.1可行性需求分析
在进行澳康达网站二手车数据采集与分析之前,需要进行可行性需求分析。
主要包括以下几个方面:
数据获取可行性:澳康达网站二手车数据是否可以被获取,获取的方式是
否合法。
数据存储可行性:采集到的数据需要存储到数据库中,需要评估数据库的
存储容量和性能是否满足需求。
数据清洗可行性:采集到的数据可能存在重复、缺失或错误等问题,需要
进行清洗和处理,评估数据清洗的难度和可行性。
数据分析可行性:分析二手车数据的目的是为了了解市场行情、车型价格、
销售趋势等信息,需要评估数据分析的可行性和可靠性。
技术可行性:进行数据采集和分析需要使用相应的技术和工具,需要评估
技术的可行性和适用性,是否需要进行技术储备和培训。
经过可行性需求分析:我们可以初步确定澳康达网站二手车数据采集与分
析的可行性,并在此基础上进行后续的技术方案和实施计划的制定。
2
湖南商务职业技术学院毕业设计
2.2采集目标功能分析
澳康达网站二手车数据采集与分析的采集目标功能分析如下:
采集二手车的基本信息:品牌、车系、上牌时间、里程、价格等信息。
采集车辆的详细信息:车辆颜色、排量、变速箱、车型等详细信息。
采集车辆图片和描述信息。
对采集到的数据进行清洗和整合,使其符合分析要求。
将采集到的数据存储在本地数据库或云端数据库中,方便后续数据处理和
分析。
实现数据可视化界面,对采集到的数据进行展示和分析,包括价格分布、
里程分布、品牌占比等分析。
通过以上采集目标功能,我们可以获取到全面且详细的二手车信息,同时
也可以方便地进行数据分析和可视化,为后续的决策提供支持和参考。
2.3关键技术分析
2.3.1网络爬虫技术
网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称
为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者
脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
2.3.2文件存取技术
JSON是一种轻量级的数据交换格式。欧洲计算机协会制定的js规范的一个
子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的
层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易
于机器解析和生成,并有效地提升网络传输效率。
2.3.3可视化技术
可视化是利用计算机图形学和图像处理技术,将数据转换成图形或图像在
屏幕上显示出来,再进行交互处理的理论、方法和技术。可视化是利用计算机
图形学和图像处理技术,将数据转换成图形或图像在屏幕上显示出来,并进行
交互处理的理论、方法和技术。
3
湖南商务职业技术学院毕业设计
3数据采集
3.1采集页面分析
进入澳康达官网,点击页面上方选项栏,选择”我要买车”进入二手汽车搜
索结果页,其中选择栏中列举了很多热门品牌,价格等选项,为了能够爬取全
量的数据,这里选择全部品牌和全部城市,如图3-1所示:
图3-1澳康达二手汽车
通过初步浏览汽车搜索结果页,页面中包含汽车的基本信息,比如:汽车名
称、新旧、行驶里程、售价、原价、城市;这些字段都需要进行采集。如图3-2
所示:
4
湖南商务职业技术学院毕业设计
图3-2汽车关键字段
通过浏览器自带的开发者工具分析页面的html文档,可以看到大部分字段
在html都有显示,如图3-3所示:
图3-3html分析
a标签中的href属性代表该汽车的详情页url,进入详情页后对汽车的详细
字段进行采集,如图3-4所示:
图3-4汽车详情页
在详情页中有汽车详细字段的描述,如车辆颜色、驱动形式、座位数等。此
时已经基本明确了页面跳转流程,首先请求搜索结果页,获取到每一页中所有
的汽车详情页url,并对详情页url进行请求。将搜索结果页和详情页采集到的
字段进行汇总,并使用json格式保存。
3.2数据解析策略
在前面的小结中已经提到,汽车的有关字段都保存在html文档中,使用
etree库的xpath方法即可获取到每个字段。编写AkdSpider类,该类用于解析
并保存字段。该类包含以下三个方法:(详细代码参考AkdSpider.py)
clean方法,该方法用于清洗数据,将文本中的空格和换行符等无用字符去
掉。它接受一个列表作为参数,将列表中的元素连接起来,并通过replace方
法替换掉无用字符。最后返回处理后的字符串。如下图3-5所示:
5
湖南商务职业技术学院毕业设计
图3-5字段中的无效字符
get_car_detail方法,该方法用于从汽车详细页面的HTML中提取车辆详细
信息。它接受一个response对象作为参数,这个对象是requests库返回的HTTP
响应对象。使用etree.HTML将HTML字符串转换为可解析的HTML对象,然后通
过XPath表达式从HTML中提取数据。最后,将提取的数据存储到一个字典对
象detail_dict中,并返回这个字典。
get_car_info方法,这个方法用于从汽车列表页面的HTML中提取汽车的基
本信息和链接,然后调用get_car_detail方法获取车辆的详细信息,并将基本
信息和详细信息合并到一个字典中,最后将这个字典存储到JSON文件中。它接
受一个response对象作为参数,这个对象是requests库返回的HTTP响应对象。
它首先使用etree.HTML将HTML字符串转换为可解析的HTML对象,然后通过
XPath表达式从HTML中提取基本信息。接着,从每个汽车的链接中获取汽车详
细信息,并调用get_car_detail方法获取详细信息。最后,将基本信息和详细
信息合并到一个字典中,并将这个字典存储到JSON文件中。
3.3翻页策略分析
为了能够采集到全量数据,还需要进行翻页处理。前面已经提到,每一页中
有32条记录,如果该页面是最后一页,那么该页中最多只有32条记录,大多
数情况下最后一页中的记录数都会小于32。根据这个规律可以判断当前页是否
为最后一页。
在每一页的最下方有页数的选择栏,点击对应的数字可以跳转到相应的页面,
跳转之后可以观察url参数的变化。如图3-6所示:
图3-6下一页url
其中pg后的数字代表当前的页数,改变该参数即可轻松的构造出下一页的
url,然后再根据最后一页的判定方式即可结束翻页。
在工具类Helper中实现翻页,代码如下所示:
classHelper:
queue=Queue()
6
湖南商务职业技术学院毕业设计
@staticmethod
defrequest_car_url(url:str):
headers={
"user-agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36
(KHTML,likeGecko)Chrome/Safari/537.36"
}
response=requests.get(url,headers=headers)
returnresponse
@staticmethod
defstorage_res(response):
cur_url=response.url
Helper.queue.put(response)
re_li=re.findall('pg(\d+)',cur_url)
next_page=cur_page=int(re_li[0]ifre_lielse0)
print(f"保存第{cur_page}页response对象")
html=etree.HTML(response.text)
field_list=html.xpath('//div[@class="CarList_main"]/a')
print(cur_url)
print(len(field_list))
iffield_list:
next_page=next_page+1
next_url=re.sub('pg\d+','pg'+str(next_page),cur_url)
Helper.storage_res(Helper.request_car_url(next_url))
Helper类的静态成员queue是一个Queue对象,表示一个队列。这个队列
被用于存储从网站中抓取到的HTML响应对象,以便后续的数据采集线程可以从
队列中获取响应对象进行数据处理。
Helper类中的第一个静态方法request_car_url接收一个URL字符串作为
参数,使用Python的requests库向该URL发送HTTP请求,并返回响应对
象response。这里使用了一个user-agen来模拟浏览器访问,避免被服务器拒
绝访问。
Helper类中的第二个静态方法storage_res接收一个响应对象response作
7
湖南商务职业技术学院毕业设计
为参数。它首先使用XPath解析器etree将响应对象的HTML文本解析成一个
Element对象html,然后使用XPath表达式获取HTML中的车辆信息列表
field_list,并将其打印出来。如果列表非空,则解析出下一页的URL,并递归
调用Helper类的request_car_url方法,将下一页的响应对象存入队列queue
中,并继续递归调用storage_res方法。这样,就可以递归地获取所有页面的
响应对象并存入队列中。
3.4多线程爬虫策略
由于该网站采集页面较多,为了达到最高的数据采集效率,考虑使用多线程
爬虫策略。在主线程中进行翻页处理,并将搜索结果页的response对象保存到
队列中,翻页处理完毕之后,再开启多个子线程,并行处理每一页response。
定义数据采集线程类CrawlerThread,继承Thread类。详细代码如下所示:
#数据采集线程
classCrawlerThread(threading.Thread):
def__init__(self,thread_id,response_list,akdSpider:AkdSpider):
threading.Thread.__init__(self)
self.thread_id=thread_id
self.response_list=response_list
self.akdSpider=akdSpider
defrun(self):
whilenotself.response_list.empty():
try:
response=self.response_list.get()
exceptIndexError:
break
else:
self.akdSpider.get_car_info(response)
采集线程中包含一个response_list队列,主线程负责将待采集的URL加入
到该队列中。采集线程使用while循环,不断从response_list队列中获取URL
并进行采集。如果队列为空,则该线程退出。在获取到URL后,采集线程调用
爬虫类中的get_car_info方法,将response作为参数传入,获取并保存数据。
8
湖南商务职业技术学院毕业设计
由于线程之间共享response_list队列,需要使用线程安全的队列,以避免多
个线程同时操作队列引起的异常。
该多线程爬虫使用Python的threading库实现。在创建采集线程时,传入
线程ID、response_list队列和爬虫类实例作为参数,并重写run方法。在run
方法中,调用get_car_info方法进行数据采集。
使用多线程可以提高爬虫的效率,因为可以同时采集多个URL的数据,而不
是一个一个地进行采集。同时,由于采集和解析是分开进行的,所以可以避免
解析过程阻塞采集过程的问题。
最后,整个程序的控制流程可以在__main__函数中找到。这个函数首先调
用Helper类的request_car_url方法获取第一页的响应对象,并将其传入
Helper类的storage_res方法中。在storage_res方法中,递归地调用
request_car_url方法获取其他页面的响应对象,并将它们存入队列中。在所有
页面的响应对象都被存入队列后,__main__函数创建多个数据采集线程并启动
它们。这些线程从队列中获取响应对象,并调用akdSpider对象的get_car_info
方法进行数据处理。如下图3-7所示:
图3-7保存response对象
3.5Main方法
在main方法编写相关代码启动多线程爬虫。如下所示:
if__name__=='__main__':
spider=AkdSpider()
queue=Helper.queue
start_response=Helper.request_car_url('/carlist/ar0pg1/')
Helper.storage_res(start_response)
num_crawler_threads=8
crawler_threads=[]
#启动数据采集线程
foriinrange(num_crawler_threads):
9
湖南商务职业技术学院毕业设计
print(f"启动线程{str(i)}")
thread=CrawlerThread(i,queue,spider)
crawler_threads.append(thread)
thread.start()
#等待所有数据采集线程完成
forthreadincrawler_threads:
thread.join()
程序开始时,创建了spider的对象,该对象的类是AkdSpider。接着,从
Helper类中获取queue的队列,并请求了start_response的网页响应,该响应
是通过Helper.request_car_url方法获取的,并将响应存储在Helper类中。
然后,定义num_crawler_threads变量,该变量表示要启动的线程数量。之后,
启动了多个CrawlerThread线程来执行数据采集操作,并将它们存储在
crawler_threads列表中。最后,等待所有线程完成执行。如图3-8所示
图3-8启动子线程
程序运行结束之后会在当前文件夹生成akdData.json文件,文件内容如图
3-9所示:
图3-9数据采集结果展示
10
湖南商务职业技术学院毕业设计
4数据清洗与处理
4.1数据清洗的意义
数据采集下来之后还需要对数据进行清洗和处理,比如date_and_mileage
字段,从“2017年06月上牌/10876公里“提取出上牌时间和行驶里程数;
new_car_price字段,从”40.00万为您节省8.70万“提取出新车价和节省金
额;将价格字段转换成浮点类型等。数据清洗是数据预处理的重要步骤之一,
数据清洗可以提高数据质量,减少数据分析中的误差和偏差,增加数据可靠性
和有效性,从而提高数据分析和决策的准确性和可信度。此外,数据清洗也可
以节省数据存储空间,加速数据分析和处理的速度。
4.2数据清洗需求
爬虫采集的数据以json格式进行保存,如下图所示:
图4-1json数据格式
1)使用pandas读取文件
2)由于photo字段没有数据分析价值,将其删除
3)从date_and_mileage字段和new_car_price字段中提取出有效字段,并剔
除掉单位字符,最后删除原有字段。
4)剔除price字段中的单位。
5)从name字段中提取出汽车的上市时间。
11
湖南商务职业技术学院毕业设计
4.3数据清洗操作
使用python读取akdData.json文件,从中提取出便于分析的字段,比如品
牌、上牌时间、售价、新车价、城市等。如下图所示:
图4-2读取akdData.json文件
使用pandas从date_and_mileage字段和new_car_price字段中提取出有
效字段。如下图所示:
图4-3切分复合字段
将date_and_mileage列按照"日期上牌/公里数"的格式进行切分,并将新
的两列分别命名为date和mileage。切分时使用了正则表达式(.+)上牌/(.+)
公里,其中.表示匹配任意字符,+表示匹配前面的字符一次或多次,括号内
的表达式表示将匹配到的内容提取出来。new_car_price列也按照相同的方式进
行处理。
为了便于数据分析,将price字段中的”万”字删除,如下图所示:
图4-4处理price字段
12
湖南商务职业技术学院毕业设计
从name字段中提取出汽车上市时间,如下图所示:
图4-5从name字段中提取上市时间
4.4数据清洗结果
通过数据清洗使得数据更加准确、一致、完整、可靠、可用,从而提高数据
的质量和价值。清洗之后的数据结果如下所示:
图4-6数据清洗结果
后续可以直接使用pandas对数据进行统计和分析。Pandas提供了强大的数
据结构,如Series和DataFrame,以及丰富的数据操作和转换函数。为数据分
析提供了强有力的支持。
5数据统计与分析
5.1数据分析
二手汽车数据是包含了各种汽车信息的数据,例如品牌、型号、年份、里
程、价格等等。利用pandas对二手汽车数据进行数据分析,可以发现很多有趣
的信息。
首先,我们可以通过对二手汽车价格的分析,发现二手汽车价格的分布情
况以及各个品牌、排量的平均价格。此外,我们还可以比较不同品牌、排量之
间的价格差异以及价格与年份、里程等因素之间的关系。
其次,我们还可以通过对二手汽车里程的分析,了解不同品牌、型号的平
均里程以及不同年份、价格区间的车辆平均里程等等。此外,我们还可以通过
13
湖南商务职业技术学院毕业设计
绘制里程和价格之间的散点图,发现二手车价格和里程之间的关系。
最后,我们还可以通过对二手汽车的品牌、型号、车龄、里程等信息进行
汇总统计,发现二手汽车市场上最受欢迎的品牌、型号、车龄等等。这些信息
可以对二手汽车买卖市场的发展趋势进行分析,并对二手车市场上的交易价格
提供参考。
5.2数据分析与展示
5.2.1统计各个品牌的汽车数量和价格
在pandas中,首先使用pd.to_numeric()函数将data中price列转换为浮
点数类型,同时通过errors='coerce'参数将无法转换的值替换为NaN。然后使
用了dropna()函数删除price列中包含NaN的行。最后,使用groupby()函数
对Brand列进行分组,统计每个品牌的汽车数量和价格的平均值,其中agg()函
数用于对每个分组进行聚合操作。{'Brand':'count','price':'mean'}指定
了需要聚合的列及聚合方式,其中'Brand':'count'表示统计每个品牌的汽车数
量,'price':'mean'表示计算每个品牌的汽车价格的平均值。最终得到的结果
是一个DataFrame,包含两列:Brand和price,其中Brand列为品牌名,price
列为对应品牌的汽车价格平均值。
将品牌数量和平均价格传入pyecharts中bar方法中绘制柱状图,如下图
5-1所示:
图5-1统计各个品牌的汽车数量和价格
14
湖南商务职业技术学院毕业设计
保时捷、奔驰、宝马、雷克萨斯等豪华车品牌的二手车均价较高,分别为
73.78、45.55、39.36、47.05万元。劳斯莱斯、兰博基尼等豪华车品牌的二手
车均价更高,但是数量较少。丰田品牌的二手车数量最多,达到32辆,但是均
价并不高,为48.16万元。有一些品牌的二手车数量较少,且均价较高,如阿
斯顿马丁、法拉利等。
据此,购买二手车时应该根据自己的需求和经济实力进行选择。如果追求豪
华车品牌,应该选择保时捷、奔驰、宝马、雷克萨斯等品牌,但需要承受较高
的价格。如果追求性价比,可以考虑丰田等品牌的二手车。
5.2.2分析行驶里程与价格的关系
完成该需求首先需要使用to_numeric方法将行驶里程数和价格转换成数值
类型,再利用sort_values方法对价格升序排序,将价格作为横坐标,将行驶
里程数作为纵坐标,再通过pyecharts中的Scatter方法绘制散点图。如下图
5-2所示:
图5-2分析行驶里程与价格的关系
价格在7万元到23万元之前的车型的行驶里程都比较长,也说明性价比的
车型多用于代步和出行;25万元以上的车型行驶里程数在3万公里以下,也说
明了豪华车型的使用频率较少。在考虑购买二手车时可以对照里程数与价格的
关系图,从而购买最适合自己的二手车。
5.2.3统计燃油与驱动方式的数量
按燃油类型和驱动方式分组,统计数量和平均价格,结果保存为两个pandas
15
湖南商务职业技术学院毕业设计
DataFrame对象(ret1和ret2)。将结果转换为pyecharts所需的数据格式,
包括饼图的标签和数据。利用pyecharts的Pie类绘制两个饼图,并分别保存
为html文件。
代码的执行过程中,利用pandas库的groupby方法按燃油类型和驱动方式
对数据进行分组,再用agg方法对分组后的数据进行聚合操作,统计每组的数
量和平均价格。然后利用pyecharts库的Pie类绘制饼图,并分别设置了标题
和标签的样式,最后分别保存为html文件。如下图5-3和5-4所示
图5-3驱动方式分布
图5-4燃油类型分布
16
湖南商务职业技术学院毕业设计
从驱动方式上看,4驱驱动形式的车型数量最多,价格也最高,为61.66万
元;后驱驱动形式的车型数量位于中间,价格也较高,为58.38万元;前驱驱
动形式的车型数量最少,价格也最低,为24.95万元;
从燃油类型上看,汽油是最为常见的能源类型,有着高达793个数据点,平
均价格为55.44。其次是(汽油)48V轻混系统和插电式(汽油)混合动力,分
别拥有69和31个数据点,平均价格分别为70.10和39.55。值得注意的是,虽
然插电式(汽油)混合动力只有31个数据点,但其平均价格仍然比汽油低很多,
表明其有着相对较高的性价比。柴油的数据点最少,仅有1个,而平均价格为
33.80,相对来说价格较低。
5.2.4统计每年上牌的汽车的数量和价格
按照年份分组,统计数量和平均价格,并将结果按照年份升序排序。同样的,
需要对价格字段转换成数值类型,也需要对年份字段进行统一格式化处理。最
后,使用Pyecharts绘制折线图,展示上牌时间的分布情况。图中包含了数量
和平均价格两个指标,横轴为年份,纵轴为数量和平均价格。折线图中间的两
条横线代表数量和价格的平均数。如下图所示:
图5-5统计每年上牌的汽车数量和价格
根据上牌年份划分,2019年的车型数量最多,有144辆,平均售价也相对
较高,为68.30万元。从2014年到2018年,车型数量有所增加,平均售价也
有所波动,但总体趋势呈现稳定的上涨。2020年和2021年的车型数量最多,但
17
湖南商务职业技术学院毕业设计
平均售价相对较低,分别为56.34万元和52.30万元。
5.3综述
从“品牌”分析报告可以看出,价格排名前三的品牌依次为奥迪、宝马和
奔驰,它们的平均价格分别为56.28万元、57.75万元和63.63万元。此外,在
品牌分布中,国产品牌数量较多,而豪华进口品牌数量较少。
从“能源类型”分析报告可以看出,插电式(汽油)混合动力和柴油车的
平均价格较低,分别为39.55万元和33.80万元;而(汽油)48V轻混系统和
(汽油)轻混系统的平均价格较高,分别为70.10万元和56.75万元。
从“驱动形式”分析报告可以看出,四驱车的平均价格最高,为61.66万
元,后驱车的平均价格为58.38万元,前驱车的平均价格最低,为24.95万元。
从“上牌年份”分析报告可以看出,从
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工业元宇宙概念下的商标视觉表达
- 黑龙江省哈尔滨市第三中学2025-2026学年度下学期高二学年期中考试 地理答案
- 心脏破裂专题学习
- 白内障术前心理护理与沟通
- PL技术基础应用 4
- 气管切开患者的团队合作护理
- 特殊患者群体护理安全挑战
- 甲状腺疾病护理中的职业安全
- 胫骨横向骨搬运术
- 新生儿回流灌肠
- 化工事故应急处理培训
- 2025年纪检监察笔试题及答案
- 酒醉驾交通安全宣传课件
- 备战2026年高考地理考试易错题(新高考)人文地理选择题50题专练(原卷版)
- 日语教学团队建设方案
- 云南航空产业投资集团(智航(云南)信息产业有限公司)招聘笔试题库2025
- 暖通销售安装合同范本
- 2025年赣州市红色文化知识竞赛考试题库150题(含答案)
- 健康照护师基础知识培训课件
- 声誉风险演练脚本(2篇)
- 移动应用开发计算机应用技术毕业实习报告范文
评论
0/150
提交评论