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

新版Google Play Store如何爬取应用分类?附现有Python代码

问题原因

你当前的代码拿不到分类信息有两个核心问题:

  • 你写的选择器soup.find_all("h1", class_="Fd93Bb ynrBgc xwcR9d")定位的是应用名称的标题节点,和分类字段完全无关
  • 新版Google Play网页端的CSS类名是前端构建时生成的混淆类名,每次版本迭代都会变更,硬编码类名的选择器本身就极容易失效,且部分页面元素需要客户端执行JS才能渲染,直接用requests拿到的初始HTML里根本不存在这些动态节点。
可行实现方案

不要依赖动态类名定位元素,Google Play会在初始返回的HTML中嵌入固定格式的application/ld+json结构化元数据,所有应用基础信息(包含分类、名称、开发者、评分等)都存在这个脚本块中,不需要执行JS就能直接提取,结构长期稳定不会随前端版本迭代轻易变动。

修正后的代码

from bs4 import BeautifulSoup
import requests
import json

# 必须加正常浏览器的User-Agent,否则会被Google Play反爬拦截
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"
}
url = 'https://play.google.com/store/apps/details?id=com.Shooter.ModernWarships'
req = requests.get(url, headers=headers)

soup = BeautifulSoup(req.content, 'html.parser')
# 提取结构化元数据脚本
meta_script = soup.find("script", type="application/ld+json")
app_metadata = json.loads(meta_script.string)

# 提取目标字段
app_name = app_metadata.get("name")
app_category = app_metadata.get("applicationCategory")

print(f"应用名称:{app_name}")
print(f"应用分类:{app_category}")

运行结果说明

执行上述代码后,会直接输出对应应用的名称和分类,针对你给出的示例链接,返回的分类为Action(动作类)。如果需要提取更多字段,可以直接打印app_metadata查看所有可用的结构化字段,包含评分、下载量、开发者信息、应用描述等内容,都不需要额外渲染页面。

注意事项
  • 所有请求必须携带合法的浏览器User-Agent,默认的requests标识会被Google Play的反爬机制直接拦截,返回空白页或者验证页面
  • 不要使用前端CSS类名作为核心定位依据,这类混淆类名每次前端发版都会替换,维护成本极高
  • 如果需要批量爬取,控制请求频率,过高的并发会直接触发IP封禁

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 20:06:09