做Python爬虫和影视数据分析的朋友,对时光网(Mtime)一定不陌生。作为国内老牌影视数据库,时光网的数据结构比豆瓣更“工程化”:导演、演员、多语言别名、精确上映日期、片长、评分……这些字段,是构建本地影视知识库、推荐系统、票房预测模型的基石。但绝大多数教程只教你怎么抓“标题+评分”,没人告诉你怎么把海报稳定下载到本地,并把路径写回 CSV。这就导致你拿到的只是一堆“文本”,而不是一个“可用的数据库”。今天这篇,我基于DrissionPage监听 mtime-search/search/unionSearch2 接口,把电影ID、中文名、英文名、评分、片长、类型、导演、演员、精确上映日期等 20+ 个字段一次性落盘,并用Requests 并发下载高清海报,同时将本地文件路径精准回写进 CSV。核心思路全讲,但字段完整性校验、海报尺寸择优、断点续爬策略,我只给逻辑,不贴完整封装——毕竟能稳定跑一个月的影视爬虫,和跑一次就炸的 Demo,完全是两个东西。
Python爬取时光网电影数据 · 核心逻辑拆解
技术栈:DrissionPage + listen.wait() + Requests海报下载 + CSV路径回写
一、为什么时光网电影数据值得爬?
字段 | 分析价值 |
|---|
movieId | 唯一标识,跨库关联 |
中文名 / 英文名 | 多语言检索 |
评分 / 片长 | 影片质量基准 |
类型 / 制片国家 | 影片分类标签 |
导演 / 演员 | 人物关系图谱 |
精确上映日期 | 档期分析 / 票房预测 |
本地海报路径 | 离线展示 / 本地影视管理 |
👉 一份 CSV + 本地海报,就是一套小型 IMDB / 豆瓣替代品。
二、监听接口:unionSearch2
dp.listen.start('mtime-search/search/unionSearch2')dp.get('https://film.mtime.com/search/movies/movies')
三、上映日期拆分(影视数据核心技巧)
"rYear": 2026,"rMonth": 8,"rDay": 5
f"{r_year}-{r_month:02d}-{r_day:02d}"
不判断 None,直接 f-string → 报错
四、海报下载:Requests 优于浏览器
HEADERS = { "User-Agent": "Mozilla/5.0", "Referer": "https://film.mtime.com/"}r = requests.get(poster_url, headers=HEADERS, timeout=15)
不判断 status_code == 200 → 下载空文件
五、CSV 路径回写
dit = { '海报URL': poster_url, '本地海报路径': poster_local_path, ✅ 关键一步 ...}
CSV 不仅记录数据,还精确记录了每张海报在硬盘上的位置
六、我故意不展开的三处
海报尺寸择优:img vs imgBig 的切换逻辑断点续爬策略:基于 movieId 或 rYear 的增量更新逻辑
七、这套数据能干什么?
本地影视管理:配合 Plex / Emby 搭建私人影院
八、结尾软广
爬虫不难,难的是在时光网这种“字段规整但结构复杂”的影视站点上,稳定拿到 20+ 个维度的干净数据,并把海报下载与路径管理做到工程级。完整源码(含海报尺寸择优、字段完整性评分、断点续爬策略)关注+点赞+推荐在评论区里回复 ,后台回时光网看入口。