You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用BeautifulSoup构建爬虫抓取IMDB Top250电影数据并导出至Excel

使用BeautifulSoup爬取IMDB Top250电影数据并导出到Excel

所需依赖

先安装必要的Python库:

pip install requests beautifulsoup4 openpyxl

完整代码实现

import requests
from bs4 import BeautifulSoup
from openpyxl import Workbook

# 模拟浏览器请求头,避免被反爬拦截
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
}

# IMDB Top250页面URL
url = 'https://www.imdb.com/chart/top/'

# 发送请求获取页面内容
response = requests.get(url, headers=headers)
response.raise_for_status()  # 检查请求是否成功

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

# 定位所有电影条目
movie_items = soup.select('.lister-list tr')

# 准备存储数据的列表
movies_data = []

# 遍历每个电影条目提取信息
for item in movie_items:
    # 提取电影名称
    title_tag = item.select_one('.titleColumn a')
    movie_title = title_tag.get_text(strip=True)
    
    # 提取电影详情页URL(拼接完整域名)
    movie_url = f"https://www.imdb.com{title_tag['href']}"
    
    # 提取电影简介(做容错处理,避免部分无简介条目导致报错)
    summary_content = item.select_one('.summaryColumn').get_text(strip=True)
    movie_summary = summary_content.split('|')[-1].strip() if '|' in summary_content else '无简介'
    
    # 将数据添加到列表
    movies_data.append({
        '电影名称': movie_title,
        '详情页URL': movie_url,
        '简介': movie_summary
    })

# 创建Excel工作簿并写入数据
wb = Workbook()
ws = wb.active
ws.title = 'IMDB Top250'

# 写入表头
ws.append(['电影名称', '详情页URL', '简介'])

# 写入电影数据
for movie in movies_data:
    ws.append([movie['电影名称'], movie['详情页URL'], movie['简介']])

# 保存Excel文件
wb.save('IMDB_Top250电影数据.xlsx')

print('数据爬取并导出完成!')

关键说明

  • 反爬规避:通过User-Agent模拟浏览器请求,降低被IMDB反爬机制拦截的概率。
  • 选择器适配:代码基于当前IMDB Top250页面的HTML结构编写,若后续页面布局更新,需对应调整.lister-list tr、.titleColumn a等选择器。
  • 容错处理:针对部分电影无简介的情况做了判断,避免程序运行崩溃。
  • Excel操作:使用openpyxl库实现Excel文件的创建与写入,支持标准.xlsx格式。

内容的提问来源于stack exchange,提问作者aseljayasooriya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 17:50:42