豆瓣电影评分爬取Python实现教程

1. 简介

在本文中,我将向你介绍如何使用Python爬取豆瓣电影的评分数据。这是一个非常常见的爬虫任务,对于刚入行的小白来说,这是一个很好的练习项目。

2. 流程概述

在开始之前,我们先来了解一下整个爬取过程的流程。下面是一个简单的流程图,展示了实现该任务的步骤。

flowchart TD
    subgraph 准备工作
        A[导入所需库]
    end
    subgraph 获取电影列表
        B[发送HTTP请求]
        C[解析HTML]
    end
    subgraph 爬取电影评分
        D[发送HTTP请求]
        E[解析JSON数据]
    end
    subgraph 保存数据
        F[将数据保存至文件或数据库]
    end

3. 具体步骤

3.1 准备工作

在开始编写代码之前,我们需要导入一些必要的库。在这个任务中,我们需要使用requests库发送HTTP请求,以及BeautifulSoup库解析HTML。如果你还没有安装这些库,请先进行安装。

import requests
from bs4 import BeautifulSoup

3.2 获取电影列表

在爬取电影评分之前,我们首先需要获取电影列表。我们可以通过发送HTTP请求获取豆瓣电影的页面,然后使用BeautifulSoup解析HTML,提取电影列表。

# 发送HTTP请求
url = '
response = requests.get(url)

# 解析HTML
soup = BeautifulSoup(response.text, 'html.parser')
movie_list = soup.find_all('div', class_='hd')

在上述代码中,我们首先发送了一个GET请求到豆瓣电影的Top250页面。然后,使用BeautifulSoup解析HTML,并使用find_all方法获取所有电影的标题。

3.3 爬取电影评分

获取到电影列表之后,我们可以继续爬取每个电影的评分。为了实现这一步,我们需要再次发送HTTP请求,但这次我们需要发送到电影的详情页面,并解析返回的JSON数据。

for movie in movie_list:
    # 获取电影详情页链接
    movie_url = movie.a['href']
    
    # 发送HTTP请求
    response = requests.get(movie_url)
    
    # 解析JSON数据
    movie_info = response.json()
    rating = movie_info['rating']['average']
    
    # 输出评分
    print('电影评分:', rating)

在上述代码中,我们使用了一个循环来遍历电影列表。在每次循环中,我们首先获取电影的详情页链接,并发送HTTP请求。然后,解析返回的JSON数据,提取评分信息。最后,我们将评分信息输出到控制台。

3.4 保存数据

最后,我们可以选择将爬取到的数据保存下来,以便后续使用。这可以通过将数据保存到文件或数据库来实现。

import csv

# 创建CSV文件
with open('movie_ratings.csv', 'w', newline='', encoding='utf-8') as file:
    writer = csv.writer(file)
    
    # 写入表头
    writer.writerow(['电影标题', '电影评分'])
    
    for movie in movie_list:
        # 获取电影详情页链接
        movie_url = movie.a['href']
        
        # 发送HTTP请求
        response = requests.get(movie_url)
        
        # 解析JSON数据
        movie_info = response.json()
        title = movie_info['title']
        rating = movie_info['rating']['average']
        
        # 写入数据行
        writer.writerow([title, rating])

在上述代码中,我们使用了csv库来创建一个CSV文件,并使用writer对象写入数据。在每次循环中,我们将电影的标题和评分写入一行。

4. 总结

恭喜你!你已经学会了如何使用Python爬取豆瓣电影的评分数据。通过本文的教程,你应该对爬虫的基本原理有了更深入的理解