使用Python编写豆瓣电影TOP250爬虫

本教程将教你如何使用Python编写一个爬虫程序,自动爬取豆瓣电影TOP250排行榜中250部影片的相关信息,并将其保存到Excel表格中。

爬取内容

爬虫程序将提取以下信息:

  • 基本信息:'排名'、'海报'、'片名'、'评分'、'导演'、'主演'、'上映时间'、'上映地点'、'类型'
  • 热门短评:前10名影片的前5条热门短评,其他影片只存储列表页上显示的那一条热门短评

代码实现

import requests
from bs4 import BeautifulSoup
import pandas as pd

# 定义函数:获取影片详情页链接
def get_movie_url(movie):
    return movie.find('div', class_='hd').a['href']

# 定义函数:获取影片海报链接
def get_movie_poster(movie):
    return movie.find('div', class_='pic').a.img['src']

# 定义函数:获取影片基本信息
def get_movie_info(movie):
    movie_info = movie.find('div', class_='bd').p.text.strip().split('
')
    movie_info = [info.strip() for info in movie_info if info.strip() != '']
    movie_info.insert(1, get_movie_poster(movie))  # 添加海报链接
    movie_info.insert(2, get_movie_url(movie))  # 添加影片详情页链接
    return movie_info

# 定义函数:获取影片热门短评
def get_movie_reviews(url):
    res = requests.get(url)
    soup = BeautifulSoup(res.text, 'html.parser')
    reviews = soup.find_all('span', class_='comment-content')
    return [review.text.strip() for review in reviews[:5]]  # 只获取前5条热门短评

# 发送HTTP请求并解析HTML
url = 'https://movie.douban.com/top250'
res = requests.get(url)
soup = BeautifulSoup(res.text, 'html.parser')

movies = soup.find_all('div', class_='item')
data = []

# 提取影片基本信息与热门短评
for movie in movies:
    movie_info = get_movie_info(movie)
    data.append(movie_info)
    if len(data) < 10:
        movie_reviews = get_movie_reviews(get_movie_url(movie))
        for i, review in enumerate(movie_reviews):
            data.append([f'{i+1}. {review}'])

# 创建DataFrame对象
df = pd.DataFrame(data, columns=['排名', '海报', '片名', '评分', '导演', '主演', '上映时间', '上映地点', '类型', '热门短评'])

# 保存为Excel文件
df.to_excel('top250_movies.xlsx', index=False)

代码说明

  1. 导入必要的库:requests 用于发送HTTP请求,BeautifulSoup4 用于解析HTML,pandas 用于创建DataFrame并保存为Excel文件。
  2. 定义函数:
    • get_movie_url(movie):获取影片详情页链接。
    • get_movie_poster(movie):获取影片海报链接。
    • get_movie_info(movie):获取影片基本信息。
    • get_movie_reviews(url):获取影片热门短评,只获取前5条。
  3. 发送HTTP请求并解析HTML:获取豆瓣电影TOP250排行榜页面的HTML代码。
  4. 提取影片信息:循环遍历每个影片,提取基本信息和热门短评,并存储到data列表中。
  5. 创建DataFrame对象:将data列表转换为pandas DataFrame。
  6. 保存为Excel文件:将DataFrame保存为名为top250_movies.xlsx的Excel文件。

注意事项

  1. 确保已安装requests、BeautifulSoup4和pandas库。
  2. 将代码保存为Python脚本文件(例如:douban_spider.py)。
  3. 运行该脚本,会在当前目录下生成一个名为top250_movies.xlsx的Excel文件。

总结

通过使用Python编写爬虫程序,可以轻松地从豆瓣电影TOP250排行榜中提取相关信息,并将其保存到Excel表格中。该程序可以帮助你快速收集和分析大量数据,并进行进一步的处理和应用。


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

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