如何使用csv文件获取IMDb网址列表?

-2 投票
1 回答
47 浏览
提问于 2025-04-13 16:15

我有一个包含1000部电影的.csv文件(https://github.com/LearnDataSci/articles/blob/master/Python%20Pandas%20Tutorial%20A%20Complete%20Introduction%20for%20Beginners/IMDB-Movie-Data.csv),现在我需要为这1000部电影获取IMDb的网址。

我试过用Cinemagoer这个工具,但我不想一个一个手动输入这1000个电影的名字。有没有更高效的方法呢?

1 个回答

0

你可以解析这个表格,然后用'title'这一列来进行Cinemagoer的查询。接着,你可以获取ID,然后直接构造一个网址。

import requests
import csv
from imdb import Cinemagoer
from io import StringIO

TABLE_URL = 'https://github.com/LearnDataSci/articles/raw/master/Python%20Pandas%20Tutorial%20A%20Complete%20Introduction%20for%20Beginners/IMDB-Movie-Data.csv'


def get_table(url):
    r = requests.get(url, stream=True)

    return StringIO(r.content.decode())


def search_movie(interface, name):
    movies = interface.search_movie(name)

    return movies[0] if len(movies) > 0 else None


def form_url(movie):
    return f'http://imdb.com/title/tt{movie.movieID}'


def main():
    ia = Cinemagoer()

    reader_obj = csv.reader(
        get_table(TABLE_URL)
    )

    # Skip column names
    next(reader_obj)

    for row in reader_obj:
        # 1 - is column with names
        print(
            form_url(
                search_movie(ia, row[1])
            )
        )


main()

撰写回答