本文将从以下几个方面介绍如何使用Python爬取豆瓣电影并对电影信息进行分析:
一、获取豆瓣电影信息
首先,我们需要使用Python爬虫技术获取豆瓣电影的基本信息。
下面是获取“豆瓣电影Top250”上电影信息的示例代码:
import requests from bs4 import BeautifulSoup url = 'https://movie.douban.com/top250' response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') movies = soup.select('.info') for movie in movies: title = movie.select_one('.title').text director = movie.select('.bd p')[0].text.split('导演: ')[-1].split('主演')[0].strip() actors = movie.select('.bd p')[0].text.split('主演: ')[-1].split('n')[0].strip() year = movie.select('.bd p')[1].text.split(' / ')[-2] rating = movie.select_one('.rating_num').text print(title, director, actors, year, rating)
以上代码使用requests库发送请求, BeautifulSoup库进行解析,通过CSS选择器获取电影信息,并将电影的标题、导演、主演、年份、评分等基本信息打印出来。
二、分析豆瓣电影数据
接下来,我们可以对豆瓣电影的数据进行分析,例如,绘制豆瓣电影Top250的电影排名与评分关系图。
使用matplotlib库对电影的排名与评分关系进行可视化展示。下面是示例代码:
import matplotlib.pyplot as plt url = 'https://movie.douban.com/top250' response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') movies = soup.select('.info') ratings = [] for movie in movies: rating = float(movie.select_one('.rating_num').text) ratings.append(rating) x = list(range(1, 251)) plt.plot(x, ratings) plt.xlabel('排名') plt.ylabel('评分') plt.show()
以上代码使用matplotlib库对获取的电影评分进行可视化展示,横轴表示排名,纵轴表示评分。
三、对电影类型进行分析
除了对电影的评分进行分析,我们还可以对电影的类型进行分析。下面是实现“豆瓣电影Top250中前十个高评分电影的类型统计”的示例代码:
url = 'https://movie.douban.com/top250' response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') movies = soup.select('.info') genres = {} for movie in movies[:10]: url = movie.select_one('.title a')['href'] response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') tags = soup.select('.tags-body a') for tag in tags: genre = tag.text genres[genre] = genres.get(genre, 0) + 1 genres = sorted(genres.items(), key=lambda x: x[1], reverse=True) print(genres)
以上代码首先获取豆瓣电影Top250中前十个高评分电影的链接,然后对各个电影的页面进行解析,获得电影的类型信息。通过字典进行计数统计,最后对电影类型进行排序并打印出来。
四、结语
本文主要介绍了如何使用Python爬虫技术获取豆瓣电影信息,并对电影排名、评分以及类型等方面进行分析。
当然,豆瓣电影只是Python爬虫应用的冰山一角,我们还可以应用Python爬虫技术获取更加丰富的数据,并通过数据分析来挖掘更多有用的信息。