如何通过CSV文件批量获取1000部电影的IMDb URL?
高效批量获取电影IMDb URL的方法
直接用Pandas批量读取CSV里的电影信息,结合Cinemagoer自动查询,不用手动输入标题,步骤如下:
1. 安装必要依赖
先确保你装了这两个包:
pip install pandas cinemagoer
2. 读取CSV文件并提取关键信息
用Pandas加载你的电影数据,提取标题和年份(年份能大幅提升匹配准确率,避免重名电影混淆):
import pandas as pd # 加载CSV文件(可用本地路径或你提供的远程链接) df = pd.read_csv("IMDB-Movie-Data.csv") # 提取标题和年份列(原CSV中年份列名为"Year") movies = df[["Title", "Year"]].values.tolist()
3. 批量查询IMDb URL
初始化Cinemagoer对象,循环遍历每部电影查询对应URL,同时添加小延时避免请求过于频繁被限制:
from cinemagoer import Cinemagoer import time ia = Cinemagoer() imdb_urls = [] for title, year in movies: try: # 按标题+年份精准查询 results = ia.search_movie(title, year=year) if results: # 取第一个匹配结果(通常最准确) movie = results[0] # 拼接标准IMDb URL imdb_url = f"https://www.imdb.com/title/tt{movie.movieID}/" imdb_urls.append(imdb_url) else: imdb_urls.append(None) # 延时0.5秒降低请求频率 time.sleep(0.5) except Exception as e: print(f"查询{title}时出错: {e}") imdb_urls.append(None) # 将URL列添加到原数据中 df["IMDb_URL"] = imdb_urls
4. 保存结果
把带URL的数据导出到新CSV文件:
df.to_csv("IMDB-Movie-Data_with_URLs.csv", index=False)
注意事项
- 若遇到重名电影匹配错误,可手动核验修正少量异常结果
- 若触发反爬限制,可适当延长延时时间或分批次查询
- 部分老电影、小众电影可能无法匹配,结果会显示
None,可后续单独处理
内容的提问来源于stack exchange,提问作者Matt Seaton
相关产品推荐
相关产品推荐

