Python爬取豆瓣排行榜教程

概述

在本教程中,我将教你如何使用Python编写爬虫程序来爬取豆瓣排行榜的数据。我们将使用Python中的requests库来发送HTTP请求,使用BeautifulSoup库来解析HTML页面,以及使用pandas库来处理和保存数据。

整体流程

首先,我们来看一下整个爬取豆瓣排行榜的流程。我们可以将整个流程分为以下几个步骤:

步骤 描述
1 发送HTTP请求获取豆瓣排行榜的HTML页面
2 解析HTML页面获取电影列表
3 遍历电影列表,提取电影信息
4 保存电影信息到CSV文件

接下来,我们将逐步详细介绍每个步骤需要做什么,并给出相应的代码示例。

步骤一:发送HTTP请求获取豆瓣排行榜的HTML页面

首先,我们需要使用Python的requests库来发送一个GET请求,以获取豆瓣排行榜的HTML页面。下面是相应的代码:

import requests

# 发送GET请求
response = requests.get('

# 打印响应内容
print(response.text)

以上代码中,我们首先导入了requests库,然后使用get方法发送一个GET请求,并将响应结果保存在response变量中。最后,我们打印了响应结果的文本内容。

步骤二:解析HTML页面获取电影列表

在第一步中,我们已经成功获取了豆瓣排行榜的HTML页面。接下来,我们需要使用BeautifulSoup库来解析HTML页面,并提取出电影列表。下面是相应的代码:

from bs4 import BeautifulSoup

# 使用BeautifulSoup解析HTML页面
soup = BeautifulSoup(response.text, 'html.parser')

# 查找电影列表
movie_list = soup.find_all('div', class_='pl2')

# 打印电影列表
for movie in movie_list:
    print(movie.text)

以上代码中,我们首先导入了BeautifulSoup库,然后使用BeautifulSoup类来解析HTML页面,并将解析结果保存在soup变量中。然后,我们使用soup.find_all方法来查找所有class属性为pl2div标签,这些标签包含了电影的相关信息。最后,我们使用for循环遍历电影列表,并打印每个电影的文本内容。

步骤三:提取电影信息

在第二步中,我们已经成功获取了电影列表。接下来,我们需要从电影列表中提取出电影的相关信息,例如电影名称、评分等等。下面是相应的代码:

# 提取电影信息
for movie in movie_list:
    # 提取电影名称
    name = movie.find('a').text.strip()

    # 提取电影评分
    rating = movie.find('span', class_='rating_nums').text.strip()
    
    # 打印电影信息
    print(f'名称:{name},评分:{rating}')

以上代码中,我们使用movie.find方法来在每个电影的div标签中查找电影名称和评分信息,并使用text属性来获取文本内容。然后,我们使用strip方法来去除字符串中的空白字符。最后,我们使用print函数来打印电影的名称和评分。

步骤四:保存电影信息到CSV文件

在第三步中,我们已经成功提取了电影的相关信息。接下来,我们需要将这些信息保存到CSV文件中。下面是相应的代码:

import pandas as pd

# 创建DataFrame对象
data = {'名称': [], '评分': []}
df = pd.DataFrame(data)

# 添加电影信息到DataFrame对象
for movie in movie_list:
    name = movie.find('a').text.strip()
    rating = movie.find('span', class_='rating_nums').text.strip()
    df = df.append({'名称': name, '评分': rating}, ignore_index=True