做Python爬虫和汽车行业数据分析的朋友,对“月销榜”一定不陌生。汽车之家的销量排行榜,是目前国内公开渠道里更新最稳定、字段最完整的乘用车月度数据源之一。无论是做车型竞品分析、新能源渗透率测算,还是车企渠道调研,这套数据都是底盘。但汽车之家的排行榜是典型的分页懒加载 + 内部 API 驱动:网页只负责渲染,真实数据全在 web-main/car/rank/getList 这个接口里。用 requests 硬拼参数容易踩时区、月份、能源类型三个坑;用 Selenium 又重又慢。今天这篇,我基于DrissionPage监听接口,把车系ID、指导价、当月销量、排名变动、综合评分、统计月份等 12 个字段一次性落盘。核心思路全讲,但翻页熔断、shareext 异常兜底、空接口重试这几处工程细节,只讲逻辑不给完整封装——毕竟能稳定跑一个月的脚本,和能跑一次的脚本,不是一个东西。技术栈:DrissionPage + listen.wait() + JSON嵌套解析 + 滚动触发分页接口特征:web-main/car/rank/getList一、为什么汽车之家月销榜值得爬?
字段 | 分析价值 |
|---|
当月销量(salecount) | 车型真实热度基准 |
排名变动(rankchange) | 新品爆发 / 老车衰退信号 |
指导价区间(priceinfo) | 价格带占位 |
能源类型(energytype) | 油电混结构拆分 |
综合评分(scorevalue) | 口碑与销量交叉验证 |
统计月份(shareext.date) | 做时间序列必备 |
👉 一份 CSV,直接能画“比亚迪 vs 吉利”月度销量曲线。
二、监听接口:先绑定,再翻页
dp.listen.start('web-main/car/rank/getList')dp.get('https://www.autohome.com.cn/rank/1#pvareaid=6863887')resp = dp.listen.wait(timeout=10)
listen.start() 必须在 get()之前调用,否则首屏请求会漏捕wait(timeout=10) 是阻塞等待单包,超时返回 None,不会抛异常接口返回的是 result.list,不是 data.list(这是汽车之家特有路径)car_list = json_data.get('result', {}).get('list', [])
👉 写错一层,直接空列表,这是 80% 脚本“第一页就断”的原因。
三、统计月份藏在 shareext 里(最阴间细节)
汽车之家不直接给“2026-06”这种字段,而是塞进:"shareinfo": { "shareext": "{\"date\":\"2026-06\"}"}
share_ext = car.get('shareinfo', {}).get('shareext', '{}')share_ext = json.loads(share_ext) if isinstance(share_ext, str) else {}stat_date = share_ext.get('date', '')
shareext 有时是字符串,有时是 dict(接口版本切换)不判断 isinstance,直接 json.loads(dict) 会炸这一行的容错顺序,是脚本能长期跑的关键(完整 try/except 封装不公开)
四、字段映射
{ '车系ID': car.get('seriesid'), '车系名称': car.get('seriesname'), '品牌ID': car.get('brandid'), '能源类型': car.get('energytype'), '指导价区间': car.get('priceinfo'), '当月销量': car.get('salecount'), '当前排名': car.get('rank'), '排名变动': car.get('rankchange'), '综合评分': car.get('scorevalue'), '本月成就数': car.get('medalCount'), '车系主图': car.get('seriesimage'), '统计月份': stat_date}
📌 对应接口证据(seriesname / salecount / priceinfo / rank / rankchange / scorevalue)在汽车之家排行页与 getList 接口中均可对齐
五、翻页逻辑:滚动 > 点按钮
汽车之家排行榜没有传统“下一页”按钮,是滚动到底自动补包:dp.scroll.to_bottom()time.sleep(1.5)resp = dp.listen.wait(timeout=10)
六、这套数据能干什么?
七、结尾软广
爬虫不难,难的是在汽车之家这种“接口稳但嵌套深”的网站上,稳定拿 12 个月连续数据。