Python 汽车之家 车型全数据 爬取

所有车型数据

Python 汽车之家 车型全数据 爬取
分析发现所有车型数据在一个js文件中:
ps:当然也可通过解析网页 xpath提取,或通过接口,获取方式有很多种,此文主要需要seriesId 车型ID 这一项数据 为获取车型价格做准备 顾用此方法。
Python 汽车之家 车型全数据 爬取

 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

Python 汽车之家 车型全数据 爬取

获取价格

Python 汽车之家 车型全数据 爬取
价格接口需要两个参数:dealerId 经销商ID 和 seriesId 车型ID

Python 汽车之家 车型全数据 爬取
经销商接口需要两个参数: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 汽车之家 车型全数据 爬取
如需完整源码或数据完整数据资料请下方留言
https://download.csdn.net/download/qq_38154948/11295670 Model数据下载链接
ps:此文仅限学习交流使用,如有侵权请联系

上一篇:DESTOON 新增模块的方法(转)


下一篇:【上机】Pre