爬取豆瓣电影排行榜Top250并存储到Excel文件中

在 Python 中,网络爬虫是一个非常常见的应用场景。本文将带您一步步爬取豆瓣电影排行榜前 250 的数据,并将其存储到 Excel 文件中。我们将使用 requests 库进行网页请求,BeautifulSoup 进行 HTML 解析,pandas 用于数据处理和存储。

1. 环境准备

首先,我们需要安装相关的 Python 库。如果您还没有安装这些库,可以使用以下命令进行安装:

pip install requests beautifulsoup4 pandas openpyxl
  • requests 用于发送 HTTP 请求并获取网页。
  • BeautifulSoup 用于解析 HTML 文档。
  • pandas 用于数据处理和保存为 Excel 文件。
  • openpyxl 用于支持 Excel 文件的写入。

2. 编写爬虫代码

以下是完整的爬虫代码示例:

import requests
from bs4 import BeautifulSoup
import pandas as pd

def get_movie_data():
    # 存储电影信息的列表
    movies = []

    # 豆瓣电影Top250的页面URL
    base_url = "https://movie.douban.com/top250?start={}&filter="

    for start in range(0, 250, 25):
        url = base_url.format(start)
        headers = {
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
        }

        response = requests.get(url, headers=headers)
        response.encoding = 'utf-8'

        # 解析页面内容
        soup = BeautifulSoup(response.text, 'html.parser')

        # 获取电影条目
        for item in soup.find_all('div', class_='item'):
            title = item.find('span', class_='title').text  # 电影标题
            rating = item.find('span', class_='rating_num').text  # 评分
            quote = item.find('span', class_='inq')  # 引语
            quote = quote.text if quote else ''  # 处理没有引语的情况

            # 将电影信息添加到列表中
            movies.append({
                '标题': title,
                '评分': rating,
                '引语': quote
            })

    return movies

def save_to_excel(movies):
    # 创建DataFrame
    df = pd.DataFrame(movies)

    # 将DataFrame保存为Excel文件
    df.to_excel('豆瓣电影Top250.xlsx', index=False)

if __name__ == "__main__":
    movie_data = get_movie_data()
    save_to_excel(movie_data)
    print("豆瓣电影排行榜Top250已成功保存到Excel文件中!")

3. 代码解析

3.1 获取电影数据

get_movie_data() 函数用于请求豆瓣电影Top250的页面并解析出电影的标题、评分和引语。我们通过 for 循环遍历从0到250的起始索引(每页25部影片),逐页获取电影信息。

3.2 存储到 Excel

save_to_excel(movies) 函数接收电影信息列表,将其转换为 pandas 的 DataFrame 格式,然后用 to_excel 方法将其保存为 Excel 文件。默认情况下,文件名为“豆瓣电影Top250.xlsx”。

3.3 主程序

if __name__ == "__main__": 段中,主程序调用两个函数,依次爬取数据并保存到 Excel 文件。

4. 运行代码

保存在 .py 文件中,运行该脚本后,您将看到控制台输出“豆瓣电影排行榜Top250已成功保存到Excel文件中!”,并在当前目录下生成一个 Excel 文件。

总结

通过以上的步骤,我们成功地爬取了豆瓣电影排行榜Top250的数据并将其存储到Excel文件中。这个过程涵盖了网络请求、HTML解析及数据存储等多个方面,熟悉这些操作将对学习和实践 Python 爬虫大有裨益。在实际应用中,请注意遵守网站的爬虫协议,避免给网站带来负担。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部