用Python爬取豆瓣电影Top250数据资源

包含编程籽料、学习路线图、爬虫代码、安装包等!【点击领取】

使用Python爬取豆瓣电影Top250数据
本文将介绍如何使用Python的requests和BeautifulSoup库来爬取豆瓣电影Top250的数据,并将结果保存为CSV文件。

1. 准备工作
首先需要安装必要的库:

pip install requests beautifulsoup4 pandas

2. 分析网页结构
打开豆瓣电影Top250页面(https://movie.douban.com/top250),我们可以发现:

每页显示25部电影

共10页

每部电影的信息包含在<div class="item"中
3. 编写爬虫代码

import requests
from bs4 import BeautifulSoup
import pandas as pd
import time
import random

# 设置请求头模拟浏览器访问
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'
}

# 存储所有电影信息
movies = []

def get_movies(url):
    # 发送HTTP请求
    response = requests.get(url, headers=headers)
    # 解析HTML
    soup = BeautifulSoup(response.text, 'html.parser')
    
    # 获取所有电影项
    items = soup.find_all('div', class_='item')
    
    for item in items:
        # 排名
        rank = item.find('em').text
        
        # 标题
        title = item.find('span', class_='title').text
        
        # 评分
        rating = item.find('span', class_='rating_num').text
        
        # 评价人数
        num_reviews = item.find('div', class_='star').find_all('span')[-1].text[:-3]
        
        # 简介
        quote_tag = item.find('span', class_='inq')
        quote = quote_tag.text if quote_tag else ''
        
        # 添加到列表
        movies.append({
            '排名': rank,
            '标题': title,
            '评分': rating,
            '评价人数': num_reviews,
            '简介': quote
        })

# 爬取所有页面
base_url = 'https://movie.douban.com/top250?start={}&filter='
for i in range(10):
    url = base_url.format(i * 25)
    get_movies(url)
    print(f'已爬取第{i+1}页')
    time.sleep(random.uniform(1, 3))  # 随机延迟1-3秒,避免被封

# 保存为CSV文件
df = pd.DataFrame(movies)
df.to_csv('douban_top250.csv', index=False, encoding='utf_8_sig')
print('数据已保存为douban_top250.csv')

4. 代码说明
请求头设置:添加User-Agent模拟浏览器访问,避免被识别为爬虫

页面解析:使用BeautifulSoup解析HTML,提取所需信息

反爬措施:

设置随机延迟

使用合理的爬取速度

数据存储:使用pandas将数据保存为CSV文件

5. 注意事项
豆瓣有反爬机制,请控制爬取速度

不要频繁访问,建议增加随机延迟

本代码仅供学习参考,请勿用于商业用途

实际使用时可能需要处理更多异常情况

6. 扩展功能
可以进一步扩展的功能:

获取电影详情页信息(导演、演员、类型等)

使用多线程提高爬取效率

将数据存入数据库

添加代理IP池应对反爬

最后:
希望你编程学习上不急不躁,按照计划有条不紊推进,把任何一件事做到极致,都是不容易的,加油,努力!相信自己!

文末福利
最后这里免费分享给大家一份Python全套学习资料,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。

包含编程资料、学习路线图、源代码、软件安装包等!【点击这里】领取!
① Python所有方向的学习路线图,清楚各个方向要学什么东西
② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
③ 100多个Python实战案例,学习不再是只会理论
④ 华为出品独家Python漫画教程,手机也能学习

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值