返回

如何利用 CSV 文件轻松获取电影的 IMDb URL?

python

巧取巧用 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 上的名称完全匹配。
  • 为了避免因速率限制而被阻止,可以在请求之间添加延迟。

常见问题解答:

  1. 我收到 imdb.IMDb.search_movie() 找不到电影的错误。
    确保电影名称在 IMDb 上存在且正确拼写。

  2. 我收到 requests.exceptions.ConnectionError 错误。
    检查你的互联网连接是否正常。

  3. 我可以获取多部电影的 IMDb URL 吗?
    是的,你可以使用批量搜索功能获取多个电影的 IMDb URL。

  4. 如何使用其他编程语言获取 IMDb URL?
    可以使用 urllib、BeautifulSoup 等库,或使用专门用于 IMDb 的 Python 包。

  5. IMDb 更改了他们的网站结构,脚本不再起作用了。
    由于 IMDb 定期更新其网站,脚本可能会过时。你需要调整脚本以适应这些更改。

结论:

通过利用 IMDb 库和巧妙的脚本,你可以轻松地从 CSV 文件中获取电影的 IMDb URL。这将使你能够访问 IMDb 的丰富数据,用于研究、分析或其他目的。