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

使用Python构建一个IMDb电影信息的命令行工具

发布时间:2023-12-11 08:58:02

IMDb (互联网电影数据库) 是一个非常受欢迎的电影信息数据库,包含了大量的电影、电视剧、演员、导演和其他相关信息。借助Python,我们可以构建一个IMDb电影信息的命令行工具,从IMDb数据库中获取电影信息并显示给用户。下面是一个例子。

1. 安装依赖

首先,我们需要安装 requestsbeautifulsoup4 这两个Python库。可以通过以下命令进行安装:

pip install requests beautifulsoup4

2. 构建命令行工具

我们将使用Python的命令行解析库 argparse 来处理命令行输入。创建一个名为 imdb_cli.py 的文件,然后将以下代码添加到文件中:

import argparse
import requests
from bs4 import BeautifulSoup

def get_movie_info(movie_id):
    url = f"https://www.imdb.com/title/{movie_id}/"
    response = requests.get(url)
    soup = BeautifulSoup(response.text, "html.parser")

    title_element = soup.find("meta", property="og:title")
    title = title_element["content"] if title_element else "N/A"

    description_element = soup.find("meta", property="og:description")
    description = description_element["content"] if description_element else "N/A"

    rating_element = soup.find("span", itemprop="ratingValue")
    rating = rating_element.text.strip() if rating_element else "N/A"

    return title, description, rating

def main():
    parser = argparse.ArgumentParser(description="IMDb Movie Info CLI")
    parser.add_argument("movie_id", type=str, help="IMDb movie ID")

    args = parser.parse_args()
    movie_id = args.movie_id

    title, description, rating = get_movie_info(movie_id)

    print(f"Title: {title}")
    print(f"Description: {description}")
    print(f"Rating: {rating}")

if __name__ == "__main__":
    main()

3. 运行命令行工具

在命令行中输入以下命令运行该工具:

python imdb_cli.py <IMDb_movie_ID>

其中 <IMDb_movie_ID> 是你要获取信息的电影的IMDb ID。

例如,如果你要获取电影 "The Shawshank Redemption" (IMDb ID: tt0111161) 的信息,可以运行以下命令:

python imdb_cli.py tt0111161

命令行输出将会显示该电影的标题、描述和评分。

这个命令行工具使用了 requests 库来获取电影网页的HTML内容,并使用 beautifulsoup4 库来解析HTML并提取所需的电影信息。在 get_movie_info 函数中,我们构造了一个IMDb电影页面的URL,然后通过发送HTTP请求获取网页内容。使用 BeautifulSoup 对网页内容进行解析,我们可以使用 find 方法查找特定HTML元素,提取电影的标题、描述和评分。

这个例子只是一个简单的构建了IMDb电影信息命令行工具的示例。你可以根据自己的需求进行定制,例如添加更多的电影信息字段或功能,或者选择不同的网站来获取电影信息。