cxl2013 发表于 2022-3-19 21:05

Python 汽车之家全系(包含历史停售车型)配置参数分析

<table><tr><td bgcolor=orange>本文仅供学习交流使用,如侵立删!</td></tr></table>

****
`汽车之家 全系车型参数(包含历史停售车型)`
****
> `2022.03.19更新`
> - 增加参数:电动扰流板、无框设计车门、隐藏电动门把手、自动驾驶芯片、芯片总算力...
> ![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/498f64f60cde46e3a9a2c1d3d61266d7~tplv-k3u1fbpfcp-zoom-1.image)

****
> `2021.8.12更新`
> - 最新官网数据(共57380款车型数据)![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/26b8ff474d174c50b1767f75f4fe8d5d~tplv-k3u1fbpfcp-zoom-1.image)

****
> `2021.7.8更新`
> - 最新官网数据(新增或修改共1098款车型数据)
![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c1ae8b909c9146e79530b6db3ac8b62d~tplv-k3u1fbpfcp-zoom-1.image)

****
> `2021.5.17更新`
> - 更新最新官网数据:新增821款车型参数及图片
![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/797e9a14ddb242b49f03232b12d56d06~tplv-k3u1fbpfcp-zoom-1.image)
****
> `2021.4.14更新`
> - 最新官网数据
> - 更改解析,保存更多参数
> - 增加:logo、车型图片
![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/95764dd2cb5642f399c0c0608a168929~tplv-k3u1fbpfcp-zoom-1.image)
![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ad08f2fec7bc40abaa432195abb68edc~tplv-k3u1fbpfcp-zoom-1.image)
![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/919b7b3c92dc493c83255f5a2fb8b101~tplv-k3u1fbpfcp-zoom-1.image)

****
> 2021.3.7更新最新数据
> ![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/68c46e96fc4b477ba4b9a90d9d2f20aa~tplv-k3u1fbpfcp-zoom-1.image)

****
#### <center>`2021.1.29更新`</center>
### **`全系车辆十年保值率数据`**
![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/407f7ec717424709a8a62931683ad6ac~tplv-k3u1fbpfcp-zoom-1.image)


****
#### <center>`2021.1.17更新`</center>
### **`汽车之家全系车型图片:576149张原图(50.5G)`**

![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a088776319344e928ca113f5705ea022~tplv-k3u1fbpfcp-zoom-1.image)
****
## 2021.1.8更新
**增加:品牌LOGO**
![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/147a4269bcd74616a320b159b46c7c36~tplv-k3u1fbpfcp-zoom-1.image)
****
## 2021.1.6更新
**更新:最新2021官网数据**
![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ff9ca9248e0342628e04d42928611a24~tplv-k3u1fbpfcp-zoom-1.image)
![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/fb54c20601204b42a91d1b7d61b66e7e~tplv-k3u1fbpfcp-zoom-1.image)

****
## 2020.5.9更新
**增加:选装包、外观颜色、内饰颜色参数
修复:多行数据存储不完整问题**
![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/72f7370242e643a3870f4ffb900ce010~tplv-k3u1fbpfcp-zoom-1.image)
******
##**2020.4.15更新**
**更新最新官网数据**
******
## **2020.3.22更新**
**新增:途虎养车 车型、保养 数据
(https://blog.csdn.net/qq_38154948/article/details/104700905)**
******
## **2020.1.9更新**
**增加:品牌首字母,品牌ID,品牌名称,车系ID,车系名称,车型ID,车型名称 字段数据**
![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9ddd7144eb6148a19b0db5cbedf8b617~tplv-k3u1fbpfcp-zoom-1.image)
![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/8237e077a06c4839b2255575b4580b8c~tplv-k3u1fbpfcp-zoom-1.image)
****************
## **2019.12.25更新**
**很多网友留言说需要车标logo,果断满足需求**

**1. 车标logo页面**
只需要车标logo和品牌参数,从移动端页面直接获取比较方便
       https://car.m.autohome.com.cn/
       
**2.解析车标图片url和品牌名称**
```python
response = requests.get("https://car.m.autohome.com.cn/")
response.encoding = 'UTF-8'
html = etree.HTML(response.text)
items = html.xpath('//*[@class="item"]')
for item in items:
    logo_url = item.xpath('./img/@data-src')
    if not logo_url:
      continue
    text = item.xpath('./span').text   
    downLoadImage(text, logo_url)
```
**3.根据url下载图片**
```python
def downLoadImage(fileName, downLoadUrl):
    r = requests.get(downLoadUrl)
    fileName = fileName + ".jpg"
    print("正在下载 " + fileName)
    with open("img/" + fileName, 'wb') as f:
      f.write(r.content)
```
**4.运行结果**
![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/82798d23260b46e096b86b412a197219~tplv-k3u1fbpfcp-zoom-1.image)
**************

## **2019.12.17更新**
**闲来无事研究了一下*车之家页面class 字体混淆**
![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7a3a0c8b05a748b6beab6b9356753c1d~tplv-k3u1fbpfcp-zoom-1.image)
**思路:**

1. 获取车型参数页面源码
2. 解析车型混淆字体js数据
3. 解析车型参数json数据
4. 匹配样式文件与json数据
5. 将混淆后的字体替换为正常字体

**效果:**![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b38516c899374da3b5b8854e836ec89c~tplv-k3u1fbpfcp-zoom-1.image)![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/71fcc50b45b14896935679e63c6e4af3~tplv-k3u1fbpfcp-zoom-1.image)
![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d7c4e389399a46b7b1b52a21a95e1cd7~tplv-k3u1fbpfcp-zoom-1.image)
**途中碰到问题:**

- 历史车型的获取
- 全部参数的解析
- 数据错位问题

****
## **2019.10.12更新**
**有人反馈数据不全刚抽出时间看了一下,原来之前只取了在售车型没有获取停售的车型数据,本次更新后数据为国内在售(停售)全系车型数据包含历史数据**
![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/fd33149dca1c463f880eb128cf40ca38~tplv-k3u1fbpfcp-zoom-1.image)
****
## **2019.9.29更新**
**闲来无事把脚本更新了一下用selenium,获取了全系全车型详细参数,主要这次包含了停售车型数据,所有历史车型数据**
![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c5d4cc1f9ed64893b62d9d8775212b72~tplv-k3u1fbpfcp-zoom-1.image)
****


## **所有车型数据**
![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7932e272f2f04385acf63b1a54c5903b~tplv-k3u1fbpfcp-zoom-1.image)
**分析发现所有车型数据在一个js文件中:**
ps:当然也可通过解析网页 xpath提取,或通过接口,获取方式有很多种,此文主要需要seriesId 车型ID 这一项数据 为获取车型价格做准备 顾用此方法。
![车型数据js](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9612874e214447f4979b6d796812bd5e~tplv-k3u1fbpfcp-zoom-1.image)

```
def get_model(self):
      """获取所有车型数据"""
      # 所有车型js文件
      url = '~~删除线格式~~ '
      response = self._parse_url(url)
      # GBK解码
      content = response.content.decode('GBK')
      # 剔除开头和结尾处多余字符 转换为json
      content = content.replace('var listCompare$100= ', '').replace(';', '')
      content = json.loads(content)
      for i in content:
            # 品牌首字母,名称,车系列表
            brand_l, brand_n, brand_list,= i['L'], i['N'], i['List']
            for q in brand_list:
                # 车系名称,车型列表
                car_l, car_list = q['N'], q['List']
                for t in car_list:
                  # 车型ID, 车型名称
                  model_l = t['I']
                  model_n = t['N']
                  yield brand_l, brand_n, car_l, model_n, model_l
```
![车型数据](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/31e6f8893ac84cb69313489a3bf06ce8~tplv-k3u1fbpfcp-zoom-1.image)

## **获取价格**
![车型价格接口](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/14ec553f061e4a37b749be15ffab510a~tplv-k3u1fbpfcp-zoom-1.image)
价格接口需要两个参数:dealerId 经销商ID 和 seriesId 车型ID

![经销商接口](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/0aa69ec1b60b40fba65486d7a60e4ee2~tplv-k3u1fbpfcp-zoom-1.image)
经销商接口需要两个参数:seriesId 车型ID 和 cityId 区域代码

```
    def get_price(self, dealerId, seriesId):
      """获取价格"""
      url = ‘~~删除线格式~~ ’
      # 根据经销商ID 和 车型ID 获取车型价格
      response = self._parse_url(url)
      # 无数据跳过
      if not response.json()['result']['list']:
            print('暂无经销商信息')
            return
      # 获取经销商信息 主要取经销商ID 用来获取价格
      contents = response.json()['result']['list']
      for con in contents:
            # 汽车型号
            SpecName = con['SpecName']
            # 指导价
            OriginalPrice = con['OriginalPrice']
            # 参考价
            Price = con['Price']
            print('{}数据请求中'.format(SpecName))
            yield SpecName, OriginalPrice, Price
```
![在这里插入图片描述](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/090365d184ca41d3849d13508673ea6f~tplv-k3u1fbpfcp-zoom-1.image)
****
#### 数据DEMO
链接:(https://pan.baidu.com/s/1aQMR_2ix_ANK7DkujxaAwg )
提取码:cmwi

****
<table><tr><td bgcolor=orange>本文仅供学习交流使用,如侵立删!
1</td></tr></table>

****

fei5788 发表于 2023-3-29 15:43

cxl2013 发表于 2022-3-20 00:34

XINJIAN9 发表于 2022-3-19 23:33
这个厉害了,如果能做出真是成交价格的走势图,对买车还是很有参考意义的

收到,有时间找下成交价方面的数据,完善一下

unbrella 发表于 2022-3-19 22:57

感谢分享

XINJIAN9 发表于 2022-3-19 23:33

这个厉害了,如果能做出真是成交价格的走势图,对买车还是很有参考意义的

c0co123 发表于 2022-3-20 00:14

楼主不分享下python代码吗?

cxl2013 发表于 2022-3-20 00:32

unbrella 发表于 2022-3-19 22:57
感谢分享

互相学习

cxl2013 发表于 2022-3-20 00:33

c0co123 发表于 2022-3-20 00:14
楼主不分享下python代码吗?

关键点的代码已经贴出来了,自行补全一下即可,有任何疑问环境随时交流。

AMA7 发表于 2022-3-20 00:43

很好很强大!

yanjingtu 发表于 2022-3-20 00:54

居然维护了好多年了?看着这么多数据反而头疼

cxl2013 发表于 2022-3-20 01:30

yanjingtu 发表于 2022-3-20 00:54
居然维护了好多年了?看着这么多数据反而头疼

业务需要:lol
页: [1] 2
查看完整版本: Python 汽车之家全系(包含历史停售车型)配置参数分析