优草派  >   Python

python实现根据用户输入从电影网站获取影片信息的方法

李明            来源:优草派

随着互联网的发展,人们越来越依赖网络获取信息。在娱乐方面,电影是很多人的选择。但是,在众多电影中找到自己想看的还是需要一定时间和精力的。为了方便用户搜索和获取电影信息,我们可以利用Python编写程序,在电影网站上根据用户输入获取影片信息。

一、如何获取电影网站的信息

python实现根据用户输入从电影网站获取影片信息的方法

要获取电影网站上的影片信息,我们需要知道网站的网址和网站上的信息结构。一般来说,电影网站会有自己的API接口,我们可以通过API来获取网站上的信息。除此之外,我们还可以使用Python的爬虫技术,从网站上抓取数据。

1.使用API接口获取网站信息

很多电影网站都提供了API接口,可以通过API来获取网站上的信息。例如,豆瓣电影提供了API接口,我们可以通过API获取豆瓣电影的影片信息。下面是一个使用豆瓣电影API获取影片信息的例子:

```python

import requests

movie_name = input("请输入电影名称:")

url = "https://api.douban.com/v2/movie/search?q=" + movie_name

response = requests.get(url)

if response.status_code == 200:

data = response.json()

for movie in data["subjects"]:

print("电影名称:", movie["title"])

print("电影评分:", movie["rating"]["average"])

print("电影类型:", ",".join(movie["genres"]))

print("电影导演:", movie["directors"][0]["name"])

print("电影演员:", ",".join([actor["name"] for actor in movie["casts"]]))

print("电影简介:", movie["summary"])

print("-" * 50)

else:

print("获取电影信息失败")

```

2.使用爬虫技术获取网站信息

如果电影网站没有提供API接口,我们可以使用爬虫技术从网站上抓取数据。Python中有很多爬虫框架,例如Scrapy、BeautifulSoup等。下面是一个使用BeautifulSoup从豆瓣电影上抓取电影信息的例子:

```python

import requests

from bs4 import BeautifulSoup

movie_name = input("请输入电影名称:")

url = "https://movie.douban.com/subject_search?search_text=" + movie_name

response = requests.get(url)

if response.status_code == 200:

soup = BeautifulSoup(response.text, "html.parser")

movie_list = soup.select(".sc-dnqmqq")

for movie in movie_list:

title = movie.select(".title-text")[0].get_text()

rating = movie.select(".rating")[0].get_text()

actors = movie.select(".meta")[0].get_text().strip()

summary = movie.select(".abstract")[0].get_text().strip()

print("电影名称:", title)

print("电影评分:", rating)

print("电影演员:", actors)

print("电影简介:", summary)

print("-" * 50)

else:

print("获取电影信息失败")

```

二、如何根据用户输入获取电影信息

获取电影网站上的信息之后,我们需要根据用户输入来获取对应的电影信息。用户输入可以是电影名称、演员名称、导演名称等。我们可以在获取电影信息的时候,根据用户输入来筛选出对应的电影信息。

下面是一个根据电影名称获取电影信息的例子:

```python

import requests

from bs4 import BeautifulSoup

movie_name = input("请输入电影名称:")

url = "https://movie.douban.com/subject_search?search_text=" + movie_name

response = requests.get(url)

if response.status_code == 200:

soup = BeautifulSoup(response.text, "html.parser")

movie_list = soup.select(".sc-dnqmqq")

for movie in movie_list:

title = movie.select(".title-text")[0].get_text()

rating = movie.select(".rating")[0].get_text()

actors = movie.select(".meta")[0].get_text().strip()

summary = movie.select(".abstract")[0].get_text().strip()

if movie_name in title:

print("电影名称:", title)

print("电影评分:", rating)

print("电影演员:", actors)

print("电影简介:", summary)

print("-" * 50)

else:

print("获取电影信息失败")

```

三、如何对电影信息进行展示

获取到电影信息之后,我们需要对电影信息进行展示。展示方式可以是控制台输出、网页展示等。下面是一个在控制台输出电影信息的例子:

```python

import requests

from bs4 import BeautifulSoup

movie_name = input("请输入电影名称:")

url = "https://movie.douban.com/subject_search?search_text=" + movie_name

response = requests.get(url)

if response.status_code == 200:

soup = BeautifulSoup(response.text, "html.parser")

movie_list = soup.select(".sc-dnqmqq")

for movie in movie_list:

title = movie.select(".title-text")[0].get_text()

rating = movie.select(".rating")[0].get_text()

actors = movie.select(".meta")[0].get_text().strip()

summary = movie.select(".abstract")[0].get_text().strip()

if movie_name in title:

print("=" * 50)

print("电影名称:", title)

print("电影评分:", rating)

print("电影演员:", actors)

print("电影简介:", summary)

else:

print("获取电影信息失败")

```

四、如何扩展功能

在获取电影信息的基础上,我们还可以扩展一些功能,例如查看电影预告片、购票、评价等。

1.查看电影预告片

要查看电影预告片,我们可以在获取电影信息的时候,同时获取电影预告片的链接。然后通过Python的webbrowser模块打开链接,就可以在浏览器中观看电影预告片了。

```python

import requests

from bs4 import BeautifulSoup

import webbrowser

movie_name = input("请输入电影名称:")

url = "https://movie.douban.com/subject_search?search_text=" + movie_name

response = requests.get(url)

if response.status_code == 200:

soup = BeautifulSoup(response.text, "html.parser")

movie_list = soup.select(".sc-dnqmqq")

for movie in movie_list:

title = movie.select(".title-text")[0].get_text()

rating = movie.select(".rating")[0].get_text()

actors = movie.select(".meta")[0].get_text().strip()

summary = movie.select(".abstract")[0].get_text().strip()

trailer = movie.select(".playable")[0]["data-trailer-addr"]

if movie_name in title:

print("=" * 50)

print("电影名称:", title)

print("电影评分:", rating)

print("电影演员:", actors)

print("电影简介:", summary)

print("电影预告片:", trailer)

webbrowser.open(trailer)

else:

print("获取电影信息失败")

```

2.购票

要购票,我们可以在获取电影信息的时候,同时获取电影的购票链接。然后通过Python的webbrowser模块打开链接,就可以在浏览器中购票了。

```python

import requests

from bs4 import BeautifulSoup

import webbrowser

movie_name = input("请输入电影名称:")

url = "https://movie.douban.com/subject_search?search_text=" + movie_name

response = requests.get(url)

if response.status_code == 200:

soup = BeautifulSoup(response.text, "html.parser")

movie_list = soup.select(".sc-dnqmqq")

for movie in movie_list:

title = movie.select(".title-text")[0].get_text()

rating = movie.select(".rating")[0].get_text()

actors = movie.select(".meta")[0].get_text().strip()

summary = movie.select(".abstract")[0].get_text().strip()

trailer = movie.select(".playable")[0]["data-trailer-addr"]

ticket = movie.select(".ticket-btn")[0]["href"]

if movie_name in title:

print("=" * 50)

print("电影名称:", title)

print("电影评分:", rating)

print("电影演员:", actors)

print("电影简介:", summary)

print("电影预告片:", trailer)

print("电影购票链接:", ticket)

webbrowser.open(ticket)

else:

print("获取电影信息失败")

```

3.评价

要评价电影,我们可以使用Python的Turtle模块,在屏幕上绘制五角星来表示评分。用户可以通过鼠标点击星星来进行评分。

```python

import turtle

def draw_star(x, y, size, color):

turtle.penup()

turtle.goto(x, y)

turtle.pendown()

turtle.color(color)

turtle.begin_fill()

for i in range(5):

turtle.forward(size)

turtle.right(144)

turtle.end_fill()

def get_click(x, y):

global rating

if x > 0 and x < 100 and y > 0 and y < 100:

rating = 5

elif x > 100 and x < 200 and y > 0 and y < 100:

rating = 4

elif x > 200 and x < 300 and y > 0 and y < 100:

rating = 3

elif x > 300 and x < 400 and y > 0 and y < 100:

rating = 2

elif x > 400 and x < 500 and y > 0 and y < 100:

rating = 1

turtle.setup(600, 100)

turtle.title("评价电影")

turtle.speed(0)

turtle.hideturtle()

turtle.penup()

turtle.goto(-250, 0)

turtle.pendown()

turtle.color("black")

turtle.write("请点击星星进行评分:", font=("Arial", 16, "normal"))

draw_star(50, 50, 30, "red")

draw_star(150, 50, 30, "orange")

draw_star(250, 50, 30, "yellow")

draw_star(350, 50, 30, "green")

draw_star(450, 50, 30, "blue")

turtle.onscreenclick(get_click)

turtle.mainloop()

print("您给电影的评分是:", rating)

```

五、总结

通过Python编写程序,我们可以方便地从电影网站上获取影片信息,并根据用户输入进行筛选。同时,我们还可以扩展一些功能,例如查看电影预告片、购票、评价等。Python提供了很多工具和框架,使我们能够更加简单地实现这些功能。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行