如何利用 CSV 文件轻松获取电影的 IMDb URL?
2024-03-03 09:58:37
巧取巧用 CSV 文件获取 1000 部电影的 IMDb URL
问题:如何获取电影的 IMDb URL?
如果你手上有一份包含电影名称的 CSV 文件,你想从中获取每部电影对应的 IMDb URL,该怎么做呢?
解决方案:IMDb URL 的秘密
获取 IMDb URL 的秘诀在于巧妙利用 IMDb 库。让我们逐步探讨如何实现这一目标。
1. 导入所需库:
- pandas(用于处理 CSV 文件)
- requests(用于向 IMDb 发送 HTTP 请求)
- BeautifulSoup(用于解析 HTML 响应)
2. 加载 CSV 文件:
使用 pandas 加载包含电影名称的 CSV 文件。
3. 使用 IMDb 库获取基本 URL:
利用 IMDb 库获取 IMDb 基本 URL。
4. 创建 URL 列表:
创建一个空列表来存储电影的 IMDb URL。
5. 遍历每部电影,获取 IMDb URL:
遍历 CSV 文件中的每部电影名称,使用 IMDb 库搜索电影并提取其 IMDb ID。
6. 从 IMDb ID 生成 URL:
将 IMDb ID 与 IMDb 基本 URL 结合起来生成完整的 IMDb URL。
7. 保存 URL:
将 IMDb URL 保存到 CSV 文件或打印到控制台。
示例代码:
import pandas as pd
import requests
from bs4 import BeautifulSoup
import imdb
# 加载 CSV 文件
df = pd.read_csv('IMDB-Movie-Data.csv')
# 使用 IMDb 库获取基本 URL
ia = imdb.IMDb()
# 创建 IMDb URL 列表
imdb_urls = []
# 遍历每部电影,获取 IMDb URL
for movie in df['Movie Title']:
try:
result = ia.search_movie(movie)
if len(result) > 0:
imdb_urls.append(result[0].movieID)
except:
continue
# 从 IMDb ID 生成 URL
base_url = 'https://www.imdb.com/title/'
imdb_urls = [base_url + url for url in imdb_urls]
# 保存 IMDb URL 到 CSV 文件
df['IMDb URL'] = imdb_urls
df.to_csv('movies_with_imdb_urls.csv', index=False)
提示:
- IMDb 上的电影名称可能有多个匹配项,该方法仅获取第一个匹配项。
- 确保 CSV 文件中的电影名称与 IMDb 上的名称完全匹配。
- 为了避免因速率限制而被阻止,可以在请求之间添加延迟。
常见问题解答:
-
我收到
imdb.IMDb.search_movie()
找不到电影的错误。
确保电影名称在 IMDb 上存在且正确拼写。 -
我收到
requests.exceptions.ConnectionError
错误。
检查你的互联网连接是否正常。 -
我可以获取多部电影的 IMDb URL 吗?
是的,你可以使用批量搜索功能获取多个电影的 IMDb URL。 -
如何使用其他编程语言获取 IMDb URL?
可以使用 urllib、BeautifulSoup 等库,或使用专门用于 IMDb 的 Python 包。 -
IMDb 更改了他们的网站结构,脚本不再起作用了。
由于 IMDb 定期更新其网站,脚本可能会过时。你需要调整脚本以适应这些更改。
结论:
通过利用 IMDb 库和巧妙的脚本,你可以轻松地从 CSV 文件中获取电影的 IMDb URL。这将使你能够访问 IMDb 的丰富数据,用于研究、分析或其他目的。