返回博客

如何使用Python和Scrapeless抓取TikTok个人资料

Alex Johnson
Alex Johnson

Senior Web Scraping Engineer

01-Sep-2026

TL;DR:

  • 个人资料查找从用户名开始。 传递 unique_id 而不带 @scraper.tiktok.user.detail
  • 响应包含身份和公共账户字段。 它可以包括 account_idsec_uid、昵称、个人资料 URL、简历、头像、统计数据、区域字段和账户状态标志。
  • sec_uid 解锁下一步。 当工作流请求账户的公开帖子时,请保存它。
  • 标识符应保持为字符串。 大型数值型 ID 在下游系统强制转换为数字时可能会丢失精度。
  • 个人资料数据不是受众数据。 行动者不会公开关注者列表或受众人口统计信息。
  • 免费开始。 新的 Scrapeless 账户通过 Scrapeless 控制面板包含免费的积分。

介绍:将公共账户解析为稳定记录

用户名方便输入,但它只是有用创作者记录的一部分。研究或监控工作还需要一个稳定的账户标识符,即帖子行动者所需的 sec_uid、公共统计数据和足够的上下文以区分具有相似显示名称的账户。

Scrapeless TikTok 个人资料抓取器将查找打包为一个 JSON 请求。然后,Python 可以验证响应,选择所需字段,并在不解析呈现 HTML 的情况下存储紧凑的记录。有关更广泛的行动者地图,请参见 Scrapeless 抓取器 API 指南

个人资料行动者返回的内容

scraper.tiktok.user.detail 接受 unique_id,可见用户名(不带前导 @)。成功的响应可以包括:

  • account_idunique_idsec_uid
  • 昵称、个人资料 URL、传记和头像
  • 关注者、正在关注、朋友、点赞、视频和喜欢的视频统计
  • 账户创建时间、语言和国家
  • 验证、隐私和卖家标志

字段可能缺失或为空。私人账户标志是账户状态,而不是访问私有内容的权限。此指南仅使用已记录的公共个人资料响应。

为什么使用 Scrapeless 抓取 API

Scrapeless 在单个 HTTP 终端后运行 TikTok 个人资料行动者,并返回结构化 JSON。这样可以为 Python 作业提供一致的请求封装,并从应用程序中去除页面选择器代码。

API 表面在 TikTok 用户详细信息参考 中进行了记录。Scrapeless 将行动者分组到 抓取 API 下;在设置生产收集计划之前,请检查 当前定价

先决条件

  • 带有标准库的 Python
  • Scrapeless 控制面板 获取的 Scrapeless 账户和 API 令牌
  • 与项目相关的公共 TikTok 用户名
  • 定义的字段列表、用途和保留期限

该示例需要 SCRAPELESS_API_KEY 中的有效令牌。通过 TIKTOK_USERNAME 传递用户名,不带 @

在 Python 中请求 TikTok 个人资料

代码使用 Python 的内置 HTTP 和 JSON 模块。urllib.request 文档 涵盖请求对象,而 JSON 模块文档 定义了下面使用的编码器和解码器。

python Copy
import json
import os
from urllib.error import HTTPError
from urllib.request import Request, urlopen

ENDPOINT = "https://api.scrapeless.com/api/v1/scraper/request"


def get_profile(unique_id):
    payload = {
        "actor": "scraper.tiktok.user.detail",
        "input": {"unique_id": unique_id.lstrip("@")},
    }
    request = Request(
        ENDPOINT,
        data=json.dumps(payload).encode(),
        headers={
            "x-api-token": os.environ["SCRAPELESS_API_KEY"],
            "content-type": "application/json",
        },
        method="POST",
    )
    try:
        with urlopen(request, timeout=60) as response:
            return json.load(response)
    except HTTPError as exc:
        detail = exc.read().decode("utf-8", errors="replace")
        raise RuntimeError(f"profile request failed: {exc.code} {detail}") from exc


profile = get_profile(os.environ["TIKTOK_USERNAME"])
normalized = {
    "account_id": str(profile.get("account_id", "")),
    "unique_id": profile.get("unique_id"),
    "sec_uid": profile.get("sec_uid"),
    "nickname": profile.get("nickname"),
    "profile_url": profile.get("profile_url"),
    "bio": profile.get("bio"),
    "statistics": profile.get("statistics") or {},
    "language": profile.get("language"),
    "country": profile.get("country"),
    "is_verified": profile.get("is_verified"),
    "is_private": profile.get("is_private"),
    "is_seller": profile.get("is_seller"),
}
print(json.dumps(normalized, ensure_ascii=False, indent=2))

使用 Scrapeless 开始抓取

使用 Scrapeless 增强您的网络抓取和自动化工作流!
今天注册,获取 $5 的免费积分无需信用卡

立即在 Scrapeless 控制面板 领取您的免费积分。

将响应映射到您的数据模型

保留三个身份字段

unique_id 是人可读的账户句柄。 account_id 是账户标识符。 sec_uidscraper.tiktok.user.work 所需的输入。保留所有三个而不是选择一个通用键。

保留统计对象

公共计数是即时值。规范化分析表可以提取选定的计数,但原始统计对象应保持可用,以便架构更改不会擦除源上下文。

将账户标志视为可为空

验证、隐私和卖方标志在存在时是有用的。如果某个字段缺失,则存储未知而不是假值。语言、国家、个人简介和头像也适用相同规则。

附加您自己的集合时间戳

个人资料响应描述了演员运行时的帐户。在调用应用程序中添加 UTC 观察时间戳,并将其与 TikTok 返回的任何帐户创建时间分开。

从用户名获取 sec_uid

个人资料请求是从用户名到发布集合的文档化桥梁。在存储 sec_uid 后,可以使用 scraper.tiktok.user.work 进行第二次请求,并与 cursorcount 一起使用。 用户工作演员参考 描述了这些输入。

避免从个人资料 URL 推导 sec_uid 或将其视为与用户名可互换。使用返回的字段。如果缺失,保留个人资料记录并将发布集合标记为该观察不可用。

导出前验证

一小套检查可以防止误导行:

  1. 确认 unique_id 在大小写和前导-@ 规范化后与预期帐户匹配。
  2. 保持 account_id 为字符串。
  3. 接受空的个人简介、区域或头像值。
  4. 仅在下一个作业需要帖子的情况下要求 sec_uid
  5. 当请求失败时,记录 HTTP 状态和编辑过的错误主体。

该端点使用正常的 HTTP 语义; RFC 9110 是状态代码含义的主要参考。应用程序日志绝不要包括 API 令牌。

负责任地处理公共个人资料数据

收集最小的字段集以回答研究问题。限制对存储的个人资料记录的访问,结束保留期时删除数据,并避免使用公共计数推断敏感特征。 NIST 隐私框架 提供了一个实用词汇,用于将数据处理映射到隐私风险。

个人资料响应支持账户级别的研究。它不提供关注者的身份、受众人口统计、私人发布或无关剖析的权限。

结论:将个人资料作为身份层使用

TikTok 个人资料抓取器应该从用户名生成稳定、最小的帐户记录。保存 account_idunique_idsec_uid,保留可为空字段,给观察添加时间戳,并仅在发布工作流需要时传递 sec_uid

准备构建您的 TikTok 个人资料数据集了吗?

加入 Scrapeless DiscordTelegram 社区 进行实施讨论。当字段列表和存储政策准备好时,创建一个 Scrapeless Dashboard 帐户。

常见问题解答

问:TikTok 个人资料抓取器需要什么输入?

需要 unique_id,即公用用户名(不带前导 @)。

问:sec_uid 用于什么?

sec_uid 是文档化用户工作演员所需的帐户标识符,以返回公共帖子。

问:个人资料演员能返回关注者人口统计数据吗?

不能。它返回公共个人资料字段和帐户统计信息,而不是受众人口统计或关注者列表。

问:TikTok 账户ID应该存储为数字吗?

不。将数字样的标识符存储为字符串,以保持在数据库和分析工具中每个数字的完整性。

问:抓取公共 TikTok 个人资料合法吗?

合法性取决于管辖权、目的、访问方式、数据和适用条款。仅使用公共字段,尽量减少收集,并为计划使用寻求法律建议。

问:工作流需要代理或 DOM 解析器吗?

应用程序代码中没有出现 DOM 解析器,因为托管演员返回结构化数据。Scrapeless 处理基础的收集面。

问:这可以在没有 AI 代理的情况下运行吗?

可以。该 Python 示例是直接的 HTTP 客户端,与代理独立运行。

在Scrapeless,我们仅访问公开可用的数据,并严格遵循适用的法律、法规和网站隐私政策。本博客中的内容仅供演示之用,不涉及任何非法或侵权活动。我们对使用本博客或第三方链接中的信息不做任何保证,并免除所有责任。在进行任何抓取活动之前,请咨询您的法律顾问,并审查目标网站的服务条款或获取必要的许可。

最受欢迎的文章

目录