美文网首页
Python 汽车之家2020 全系车型参数(包含历史车型) 最

Python 汽车之家2020 全系车型参数(包含历史车型) 最

作者: 拉灯的小手 | 来源:发表于2020-02-18 23:03 被阅读0次

    此文已不更新,如需最新动态请关注下方
    https://blog.csdn.net/qq_38154948/article/details/106027041


    2020.5.9更新

    增加:选装包、外观颜色、内饰颜色参数
    修复多行数据存储不完整问题

    微信截图_20200509201418.png

    2020.4.15更新

    更新最新官网数据


    2020.1.9更新

    增加:品牌首字母,品牌ID,品牌名称,车系ID,车系名称,车型ID,车型名称 字段数据

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

    2019.12.25更新

    很多网友留言说需要车标logo,果断满足需求

    1. 车标logo页面
    只需要车标logo和品牌参数,从移动端页面直接获取比较方便
    https://car.m.autohome.com.cn/

    2.解析车标图片url和品牌名称

    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')[0].text    
        downLoadImage(text, logo_url[0])
    

    3.根据url下载图片

    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.运行结果

    在这里插入图片描述

    2019.12.17更新

    闲来无事研究了一下车之家页面class 字体混淆*

    在这里插入图片描述
    思路:
    1. 获取车型参数页面源码
    2. 解析车型混淆字体js数据
    3. 解析车型参数json数据
    4. 匹配样式文件与json数据
    5. 将混淆后的字体替换为正常字体

    效果:

    在这里插入图片描述 在这里插入图片描述
    在这里插入图片描述
    途中碰到问题:
    • 历史车型的获取
    • 全部参数的解析
    • 数据错位问题

    2019.10.12更新

    有人反馈数据不全刚抽出时间看了一下,原来之前只取了在售车型没有获取停售的车型数据,本次更新后数据为国内在售(停售)全系车型数据包含历史数据

    在这里插入图片描述

    2019.9.29更新

    闲来无事把脚本更新了一下用selenium,获取了全系全车型详细参数,主要这次包含了停售车型数据,所有历史车型数据

    在这里插入图片描述

    所有车型数据

    在这里插入图片描述
    分析发现所有车型数据在一个js文件中:
    ps:当然也可通过解析网页 xpath提取,或通过接口,获取方式有很多种,此文主要需要seriesId 车型ID 这一项数据 为获取车型价格做准备 顾用此方法。
    车型数据js
     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
    
    车型数据

    获取价格

    车型价格接口

    价格接口需要两个参数:dealerId 经销商ID 和 seriesId 车型ID

    经销商接口

    经销商接口需要两个参数: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
    
    在这里插入图片描述

    相关文章

      网友评论

          本文标题:Python 汽车之家2020 全系车型参数(包含历史车型) 最

          本文链接:https://www.haomeiwen.com/subject/foxofhtx.html