用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,运行代码后,将会输出每个时长的出现次数。
