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

使用app_store_scraper爬取苹果播客评论遇401错误,疑API或依赖变更

解决app-store-scraper爬取播客评论时的401错误

可能原因及修复方案

1. Apple API认证规则变更

Apple的App Store评论接口大概率调整了认证机制,旧版本app-store-scraper未适配新逻辑:

  • 先升级包到最新版本:
    pip install --upgrade app-store-scraper
    
  • 升级后仍报错的话,查看包的最新文档,确认是否新增了认证参数(如请求头、token等)。

2. 请求触发反爬限制

401也可能是Apple检测到异常请求,临时限制了你的IP或请求频率:

  • 降低how_many参数值,分批次爬取,避免单次请求量过大。
  • 在代码中添加请求间隔,比如每爬取一批就暂停几秒(用time.sleep()实现)。

3. 依赖包版本冲突

检查requests等核心依赖的版本是否与app-store-scraper兼容:

  • 查看包的requirements.txt文件,安装对应版本的依赖:
    pip install requests==<兼容版本号>
    
  • 建议创建虚拟环境,重新安装所有依赖,规避全局环境的版本冲突。

4. 播客参数失效

确认app_id和app_name是否正确,播客的URL参数可能已变更:

  • 从Apple Podcasts官网重新获取目标播客的最新ID和名称,替换到代码中。

调整后的示例代码

以下是适配分批爬取的代码示例(以最新版包的要求为准):

import pandas as pd
import numpy as np
import time
from app_store_scraper import AppStore

# 使用最新确认的app_id和地区参数
podcast = AppStore(country='us', app_id='1556267741')

# 分批爬取,控制请求频率
batch_size = 1000
target_total = 7000
all_reviews = []

while len(all_reviews) < target_total:
    podcast.review(how_many=batch_size)
    # 提取新增的评论
    new_reviews = podcast.reviews[len(all_reviews):]
    if not new_reviews:
        break  # 没有更多评论时终止
    all_reviews.extend(new_reviews)
    time.sleep(5)  # 每批爬取后暂停5秒

print(f"This podcast has {len(all_reviews)} reviews.")

# 直接将评论列表转为DataFrame,无需转numpy数组
podcastdf = pd.DataFrame(all_reviews)
display(podcastdf)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 04:27:24