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

如何使用Python自动遍历IMDb影评页面,批量获取超过默认25条的影评数据

Python批量获取IMDb影评的实现方案

IMDb影评区采用AJAX动态加载机制,没有传统的分页URL,所以拼接?page=2这类参数不会生效,点击「加载更多」时才会向后端请求下一批数据,有两种实现方案可选:

方案1:Selenium模拟点击(入门友好,无需抓包)

适合没有抓包经验的用户,直接模拟用户手动点击的操作,实现逻辑如下:

  • 先安装依赖:pip install selenium webdriver-manager
  • 核心实现步骤:
    1. 用webdriver打开目标影评页面
    2. 循环判断「加载更多」按钮是否存在,可通过按钮的class名ipl-load-more__button定位
    3. 若按钮存在则模拟点击,等待2-3秒让新影评加载完成
    4. 达到你需要的影评数量后停止循环,用BeautifulSoup等工具解析当前页面的所有影评内容即可

示例核心代码片段:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from webdriver_manager.chrome import ChromeDriverManager
import time

# 目标影片影评页
url = "https://www.imdb.com/title/tt0111161/reviews/?ref_=tt_ql_urv"
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get(url)

# 假设要爬100条,也就是点3次加载更多
target_count = 100
current_count = 25

while current_count < target_count:
    try:
        load_more_btn = WebDriverWait(driver, 10).until(
            EC.element_to_be_clickable((By.CLASS_NAME, "ipl-load-more__button"))
        )
        load_more_btn.click()
        time.sleep(3)
        current_count += 25
    except:
        # 没有更多影评时退出循环
        break

# 解析页面获取影评
page_source = driver.page_source
driver.quit()

方案2:直接调用AJAX接口(效率更高,无需启动浏览器)

适合对HTTP请求有基础了解的用户:

  • 打开浏览器控制台切换到「网络」标签,筛选XHR请求,点击「加载更多」按钮时就能捕捉到路径为/_ajax/get-more-user-reviews的POST请求
  • 该请求的必传参数包括:tconst(影片的IMDb编号,即示例中的tt0111161)、paginationKey(每次请求返回的结果中会附带下一次请求需要用的key)、sortType等
  • 第一次请求不需要传paginationKey,之后每次请求用返回的新key即可,每次返回25条影评的HTML片段,循环请求直到拿到需要的数量即可
关于IMDb动态加载设计的说明

这种设计并非专门为了提高爬取门槛,是现在大型网站的通用优化方案:

  • 降低首屏加载压力,用户打开页面时只需加载25条评论,页面打开速度更快,提升普通用户体验
  • 减少无效资源消耗,绝大多数普通用户只会浏览前几十条评论,不需要全量返回所有评论
  • 客观上确实提升了批量爬取的难度,属于平台保护自有数据的附带效果,符合平台的运营需求

注意:仅用于学校作业爬取时请控制请求频率,不要短时间内发起大量请求,避免被平台封禁IP。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:15:05