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

如何从TikTok页面源码中提取UserModule的JSON数据?

提取TikTok页面中的UserModule JSON并获取用户ID

TikTok的用户数据通常嵌在页面源码的<script>初始化标签里,你可以通过遍历script标签定位目标内容,再解析JSON提取用户ID,修改后的代码如下:

from bs4 import BeautifulSoup as bs4
from urllib.request import Request, urlopen
import json

user = "khaby.lame"
# 添加请求头避免被反爬拦截
req = Request(f"https://tiktok.com/@{user}", headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'})
u = urlopen(req).read()
soup = bs4(u, "html.parser")

# 遍历所有script标签,筛选包含UserModule的内容
for script in soup.find_all('script'):
    script_content = script.string
    if script_content and 'UserModule' in script_content:
        # 清理JSON字符串的前缀和后缀干扰
        if script_content.startswith('window.__INITIAL_STATE__='):
            json_raw = script_content.replace('window.__INITIAL_STATE__=', '')
            if json_raw.endswith(';'):
                json_raw = json_raw[:-1]
            # 解析JSON数据
            data = json.loads(json_raw)
            # 提取目标用户ID
            user_id = data['UserModule']['users'][user]['id']
            print(f"用户ID: {user_id}")
            break

关键说明:

  • TikTok会把页面初始化数据放在带有window.__INITIAL_STATE__=前缀的script标签中,必须先清理掉这个前缀和可能的末尾分号,才能正常解析JSON。
  • UserModule的结构里,users字段以用户名为键,对应的value中包含用户ID、昵称等核心信息。
  • 添加User-Agent请求头是为了绕过TikTok的基础反爬机制,避免直接用urlopen被拦截。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 02:52:18