当前位置:首页>排行榜>Python爬取汽车之家销量排行榜:监听getList接口,拿全车系月销与排名变动(附源码)

Python爬取汽车之家销量排行榜:监听getList接口,拿全车系月销与排名变动(附源码)

  • 更新时间 2026-08-02 14:12:59
Python爬取汽车之家销量排行榜:监听getList接口,拿全车系月销与排名变动(附源码)
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)
关键点(DrissionPage 官方机制):
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)

六、这套数据能干什么?

车企战略部:跟踪竞品月度衰减曲线
新能源媒体:算插混/增程占比环比
二手车商:高销量车系 = 3 年后置换供给
量化投研:销量同比改新车企营收预期

七、结尾软广

爬虫不难,难的是在汽车之家这种“接口稳但嵌套深”的网站上,稳定拿 12 个月连续数据

最新文章

随机文章