欢迎访问宙启技术站
智能推送

用Python实现的IMDb电影时长统计器

发布时间:2023-12-11 09:04:09

下面是一个用Python实现的IMDb电影时长统计器的示例代码:

import requests
from bs4 import BeautifulSoup

def get_movie_duration(movie_url):
    # 发送GET请求获取电影详情页
    response = requests.get(movie_url)
    soup = BeautifulSoup(response.text, 'html.parser')
    
    # 找到电影时长所在的HTML标签
    duration_tag = soup.find('time')
    
    # 提取电影时长
    duration = duration_tag.text.strip()
    
    return duration

def imdb_movie_duration_counter(movie_list):
    durations = {}
    
    for movie in movie_list:
        movie_url = "https://www.imdb.com/title/" + movie + "/"
        duration = get_movie_duration(movie_url)
        
        if duration in durations:
            durations[duration] += 1
        else:
            durations[duration] = 1
    
    return durations

# 电影ID列表
movie_list = ["tt1375666", "tt0816692", "tt0120737"]

# 统计电影时长
durations = imdb_movie_duration_counter(movie_list)

# 打印结果
for duration, count in durations.items():
    print("时长:", duration, "出现次数:", count)

使用例子:

def imdb_movie_duration_counter(movie_list):
    '''
    统计IMDb电影的时长
    输入: movie_list - IMDb电影ID列表
    输出: durations - 时长统计结果,以字典形式返回,键为时长,值为出现次数
    '''
    
    durations = {}
    
    for movie in movie_list:
        movie_url = "https://www.imdb.com/title/" + movie + "/"
        duration = get_movie_duration(movie_url)
        
        if duration in durations:
            durations[duration] += 1
        else:
            durations[duration] = 1
    
    return durations

# 电影ID列表
movie_list = ["tt1375666", "tt0816692", "tt0120737"]

# 统计电影时长
durations = imdb_movie_duration_counter(movie_list)

# 打印结果
for duration, count in durations.items():
    print("时长:", duration, "出现次数:", count)

在以上示例代码中,我们首先定义了一个get_movie_duration函数,用于从电影详情页中获取电影时长信息。它接受一个IMDb电影的URL作为输入,使用requests库发送GET请求,然后使用BeautifulSoup库解析HTML页面,找到电影时长所在的标签,并提取出时长信息。接下来,我们定义了imdb_movie_duration_counter函数,它接受一个IMDb电影ID列表作为输入,遍历每个电影ID,根据ID构建电影详情页的URL,并调用get_movie_duration函数获取电影时长。通过对时长进行统计,我们使用字典记录每个时长的出现次数。最后,我们打印出统计结果。

使用这个示例代码,你可以输入一个IMDb电影ID列表,然后统计这些电影的时长信息,并打印结果。你可以在movie_list中定义电影ID,运行代码后,将会输出每个时长的出现次数。