Python豆瓣电影Top250评分爬虫实战教程

本文将带你一步步实现一个基于Python的豆瓣电影Top250评分爬虫,帮助你获取电影名称、评分和详情页链接等信息。

1. 准备工作

首先,我们需要导入必要的库:

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

2. 获取网页源代码

确定豆瓣电影Top250的网址,并发送请求获取网页源代码:

url = 'https://movie.douban.com/top250'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36'}  # 设置请求头
response = requests.get(url, headers=headers)
response.encoding = 'utf-8'

3. 解析网页数据

使用BeautifulSoup库解析网页源代码,提取电影信息:

soup = BeautifulSoup(response.text, 'html.parser')
movie_list = soup.find('ol', class_='grid_view').find_all('li')

4. 存储电影信息

创建一个空列表,用于存储所有电影信息:

movies = []

针对每一部电影,构造一个字典,包含电影名称、电影评分、电影详情页链接等信息,并将字典添加到列表中:

for movie in movie_list:
    movie_name = movie.find('span', class_='title').text
    movie_rating = movie.find('span', class_='rating_num').text
    movie_link = movie.find('a')['href']
    
    movie_info = {'名称': movie_name, '评分': movie_rating, '链接': movie_link}
    movies.append(movie_info)

5. 翻页爬取

通过查找网页源代码,获取下一页的链接,判断是否存在下一页,如果存在,则继续发送请求,重复步骤2-5,直到爬取完所有电影信息:

while True:
    next_page_url = soup.find('span', class_='next').find('a')['href'] if soup.find('span', class_='next') else None
    if next_page_url:
        response = requests.get(next_page_url, headers=headers)
        response.encoding = 'utf-8'
        soup = BeautifulSoup(response.text, 'html.parser')
        movie_list = soup.find('ol', class_='grid_view').find_all('li')
        for movie in movie_list:
            movie_name = movie.find('span', class_='title').text
            movie_rating = movie.find('span', class_='rating_num').text
            movie_link = movie.find('a')['href']
            
            movie_info = {'名称': movie_name, '评分': movie_rating, '链接': movie_link}
            movies.append(movie_info)
    else:
        break
    time.sleep(1)

6. 保存数据

将列表中的信息保存到本地文件中,如csv文件:

df = pd.DataFrame(movies)
df.to_csv('douban_top250.csv', index=False)

7. 总结

本教程介绍了使用Python编写豆瓣电影Top250评分爬虫的基本步骤,你可以根据实际需要进行调整和扩展。在爬取数据时,请注意遵守网站的robots协议,避免过度请求导致封禁IP。

注意: 本教程仅供学习交流使用,请勿用于任何商业目的或违反法律法规的行为。

Python豆瓣电影Top250评分爬虫实战教程

原文地址: https://www.cveoy.top/t/topic/l6K4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录