如何通过 Kununu 官方 API 稳健抓取完整动态评论与评分数据

风芳同学_9885

风芳同学_9885

2026-08-16

983人浏览

原创

如何通过 Kununu 官方 API 稳健抓取完整动态评论与评分数据

本文详解如何绕过 kununu 动态加载限制,直接调用其后端 ajax api 分页获取全部员工评论及评分,避免 selenium 点击模拟的不可靠性与 json 数据滞后问题。

本文详解如何绕过 kununu 动态加载限制,直接调用其后端 ajax api 分页获取全部员工评论及评分,避免 selenium 点击模拟的不可靠性与 json 数据滞后问题。

Kununu 页面(如 https://www.kununu.com/de/adidas/kommentare)采用服务端渲染 + 客户端动态加载混合架构:初始 HTML 包含基础结构,但真实评论数据由前端 JavaScript 通过 Ajax 请求后端 API 动态注入。你当前使用的 #__NEXT_DATA__ 脚本标签仅包含首屏(通常为前10条)静态渲染的初始数据,即使通过 Selenium 模拟点击“Read more reviews”,该 JSON 块也不会自动更新——因为它在页面首次渲染后即固化,后续增量数据仅注入 DOM,不重写该脚本节点。

因此,可靠方案不是等待或解析动态 DOM,而是直接对接其真实数据源:Kununu 的 Reviews API。该接口设计规范、响应稳定,且支持分页与参数化筛选,是规模化采集的首选路径。

✅ 正确做法:直连官方 Reviews API

首先从主页提取企业唯一标识 ID(非 URL 路径中的 adidas,而是评论链接中嵌入的数字 ID):

from bs4 import BeautifulSoup
import requests

url = "https://www.kununu.com/de/adidas/kommentare"
soup = BeautifulSoup(requests.get(url).content, "html.parser")
# 提取任意一条评论链接中的 ID(例如 /review/123456789/...)
id_ = soup.select_one('a[href*="/review/"]')["href"].split("/")[3]

然后构造 API 请求(注意:API 地址格式为 https://www.kununu.com/middlewares/profiles/{country}/{company_slug}/{id}/reviews):

api_url = "https://www.kununu.com/middlewares/profiles/de/adidas/{}/reviews"

params = {
    "fetchFactorScores": "0",  # 是否获取维度评分(如工作氛围、薪酬等),设为0可提速
    "reviewType": "employees", # 固定值,表示员工评论
    "urlParams": "",           # 保留空字符串即可
    "page": "1"                # 页码,从1开始
}

all_reviews = []
for page_num in range(1, 6):  # 抓取前5页(每页约10–15条)
    params["page"] = str(page_num)
    try:
        resp = requests.get(api_url.format(id_), params=params, timeout=10)
        resp.raise_for_status()
        data = resp.json()

        for review in data.get("reviews", []):
            # 提取核心字段
            rating = review.get("rating", {}).get("overall")  # 总体评分(1–5)
            author = review.get("author", {}).get("name", "Anonymous")
            date = review.get("date", "")

            # 多段文本(标题、正文、改进建议等)
            texts = [t["text"] for t in review.get("texts", []) if t.get("text")]
            full_text = "\n".join(texts)

            all_reviews.append({
                "rating": rating,
                "author": author,
                "date": date,
                "text": full_text
            })

    except (requests.RequestException, KeyError, ValueError) as e:
        print(f"第 {page_num} 页请求失败:{e}")
        break

⚠️ 注意事项与最佳实践

  • User-Agent 必须设置:Kununu API 会拒绝无 UA 的请求,建议添加 headers={"User-Agent": "Mozilla/5.0..."};
  • 请求频率控制:单次抓取建议间隔 ≥1 秒,避免触发风控;大规模采集请使用代理池与随机延迟;
  • ID 稳定性验证:企业 ID 可能随网站重构变化,建议每次运行前校验 soup.select_one('a[href*="/review/"]') 是否存在;
  • 错误处理强化:API 返回可能为空或结构变更,需对 data.get("reviews") 和嵌套键做防御性访问;
  • 评分字段说明:review["rating"]["overall"] 为整数(1–5),另有 "factors" 字典提供细分维度(如 workLifeBalance, salary),按需解析。

该方法完全规避了浏览器自动化带来的性能开销、稳定性风险与反爬干扰,数据完整性与一致性显著优于 DOM 解析+JSON 混合策略。对于需要长期维护的采集任务,这是更专业、可持续的技术选型。

大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
html版权符号
html版权符号

html版权符号是“©”,可以在html源文件中直接输入或者从word中复制粘贴过来,php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

5315

7

html在线编辑器
html在线编辑器

html在线编辑器是用于在线编辑的工具,编辑的内容是基于HTML的文档。它经常被应用于留言板留言、论坛发贴、Blog编写日志或等需要用户输入普通HTML的地方,是Web应用的常用模块之一。php中文网为大家带来了html在线编辑器的相关教程、以及相关文章等内容,供大家免费下载使用。

2023.06.21

3072

4

html网页制作
html网页制作

html网页制作是指使用超文本标记语言来设计和创建网页的过程,html是一种标记语言,它使用标记来描述文档结构和语义,并定义了网页中的各种元素和内容的呈现方式。本专题为大家提供html网页制作的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.31

2730

5

html空格
html空格

html空格是一种用于在网页中添加间隔和对齐文本的特殊字符,被用于在网页中插入额外的空间,以改变元素之间的排列和对齐方式。本专题为大家提供html空格的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.01

2759

5

html是什么
html是什么

HTML是一种标准标记语言,用于创建和呈现网页的结构和内容,是互联网发展的基石,为网页开发提供了丰富的功能和灵活性。本专题为大家提供html相关的各种文章、以及下载和课程。

2023.08.11

4659

6

html字体大小怎么设置
html字体大小怎么设置

在网页设计中,字体大小的选择是至关重要的。合理的字体大小不仅可以提升网页的可读性,还能够影响用户对网页整体布局的感知。php中文网将介绍一些常用的方法和技巧,帮助您在HTML中设置合适的字体大小。

2023.08.11

2701

3

html转txt
html转txt

html转txt的方法有使用文本编辑器、使用在线转换工具和使用Python编程。本专题为大家提供html转txt相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.31

2489

3

html文本框代码怎么写
html文本框代码怎么写

html文本框代码:1、单行文本框【<input type="text" style="height:..;width:..;" />】;2、多行文本框【textarea style=";height:;"></textare】。

2023.09.01

2268

6

HTML嵌入CSS样式的方法
HTML嵌入CSS样式的方法

HTML嵌入CSS样式的方法有内联样式、内部样式表和外部样式表。本专题为大家提供CSS样式相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.20

2248

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习