ブログに戻ります

TikTokプロファイルをPythonとScrapelessでスクレイピングする方法

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ダッシュボードを通じて無料のクレジットが含まれています。

はじめに:公開アカウントを安定したレコードに解決する

ユーザー名は入力に便利ですが、有用なクリエイターレコードの一部に過ぎません。研究または監視の作業には、投稿アクターによって必要とされる安定したアカウント識別子、公開統計、および類似の表示名を持つアカウントを区別するための十分なコンテキストが必要です。

Scrapeless TikTokプロファイルスクレイパーは、検索を1つのJSONリクエストとしてパッケージ化します。Pythonはその後、レスポンスを検証し、必要なフィールドを選択して、レンダリングされたHTMLを解析せずにコンパクトなレコードを保存できます。より広範なアクターのマップについては、Scrapeless Scraper APIガイドを参照してください。

プロファイルアクターが返すもの

scraper.tiktok.user.detailunique_idを受け入れ、@なしの可視ユーザー名を返します。成功したレスポンスには以下が含まれる場合があります:

  • account_idunique_idsec_uid
  • ニックネーム、プロファイルURL、バイオグラフィー、アバター
  • フォロワー、フォロー中、友達、いいね、動画、いいねされた動画の統計
  • アカウント作成日時、言語、国
  • 検証、プライバシー、販売者のフラグ

フィールドは欠落しているか空である場合があります。プライベートアカウントフラグはアカウントの状態であり、プライベートコンテンツへのアクセス許可ではありません。このガイドでは、文書化された公開プロファイルレスポンスのみを使用します。

Scrapeless Scraping APIを使用する理由

Scrapelessは、単一のHTTPエンドポイントの背後でTikTokプロファイルアクターを実行し、構造化されたJSONを返します。これにより、Pythonジョブは一貫したリクエストエンベロープを持ち、アプリケーションからページセレクターコードが削除されます。

APIの表面は、TikTokユーザー詳細リファレンスに文書化されています。ScrapelessはアクターをScraping APIにグループ化しています。プロダクションコレクションスケジュールを設定する前に現在の価格を確認してください。

前提条件

  • 標準ライブラリを備えたPython
  • Scrapeless Dashboardからの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を使ってあなたのWebスクレイピングと自動化ワークフローをパワーアップしましょう!
今すぐサインアップして**$5の無料クレジット**を手に入れましょう — クレジットカードは不要です

Scrapeless Dashboardで今すぐ無料クレジットを請求してください。

レスポンスをデータモデルにマッピングする

3つのアイデンティティフィールドを保持する

unique_id は人間が読めるアカウントハンドルです。 account_id はアカウント識別子です。 sec_uidscraper.tiktok.user.work に必要な入力です。3つすべてを保持し、1つの普遍的なキーを選ばないでください。

統計オブジェクトを保持する

公開カウントは時点値です。正規化された分析テーブルは選択したカウントを抽出できますが、生の統計オブジェクトはスキーマの変更によってソースコンテキストが消されないように保持されるべきです。

アカウントフラグをnullableとして扱う

検証、プライバシー、販売者フラグは、存在する場合に便利です。フィールドが欠落している場合は、falseではなくunknownを保存します。同じルールが言語、国、バイオ、アバターにも適用されます。

自分のコレクションのタイムスタンプを添付する

プロフィール応答は、アクターが実行されたときのアカウントを説明します。呼び出しアプリケーションでUTC観察タイムスタンプを追加し、TikTokによって返されるアカウント作成時間とは別に保持します。

sec_uidをユーザー名から取得する

プロフィールリクエストは、ユーザー名から投稿コレクションへの文書化されたブリッジです。sec_uidを保存した後、2回目のリクエストではscraper.tiktok.user.workcursorおよびcountと共に使用できます。ユーザー作業アクター参照は、それらの入力を説明しています。

sec_uidをプロフィールURLから導出したり、ユーザー名と同等に扱ったりするのは避けてください。返されたフィールドを使用してください。欠落している場合は、プロフィールレコードを保持し、その観察のための投稿コレクションを利用不可能としてマークします。

エクスポート前の検証

少数のチェックが誤解を招く行を防ぎます:

  1. unique_idが意図したアカウントと一致することを確認してください(大文字小文字と先頭の@正規化後)。
  2. account_idを文字列として保持します。
  3. 空のバイオ、ロケール、またはアバター値を受け入れます。
  4. 次のジョブが投稿を必要とする場合のみsec_uidを要求します。
  5. リクエストが失敗したときにHTTPステータスと修正されたエラーボディを記録します。

エンドポイントは通常のHTTPセマンティクスを使用します; RFC 9110は、ステータスコードの意味の主要な参考文献です。アプリケーションのログにはAPIトークンを含めるべきではありません。

公共プロフィールデータを責任を持って扱う

研究質問に答える最小のフィールドセットを収集します。保存されたプロフィールレコードへのアクセスを制限し、保持期間が終了した際にデータを削除し、敏感な特性を推測するために公共のカウントを使用するのは避けてください。NISTプライバシーフレームワークは、データ処理をプライバシーリスクにマッピングするための実用的な語彙を提供します。

プロフィール応答はアカウントレベルの研究をサポートします。フォロワーの身元、オーディエンスの人口統計、プライベート投稿、または無関係なプロファイリングの許可を提供するものではありません。

結論:プロフィールをアイデンティティレイヤーとして使用する

TikTokプロフィールスクレイパーは、ユーザー名から安定した最小限のアカウントレコードを生成する必要があります。account_idunique_id、およびsec_uidを保存し、nullableフィールドを保持し、観察のタイムスタンプを付け、投稿ワークフローがそれを必要とする場合にのみsec_uidを進めます。

TikTokプロフィールデータセットを構築する準備ができましたか?

Scrapeless DiscordまたはTelegramコミュニティに参加して実装ディスカッションを行ってください。フィールドリストとストレージポリシーが準備できたら、Scrapeless Dashboardにアカウントを作成してください。

FAQ

Q: TikTokプロフィールスクレイパーにはどの入力が必要ですか?

必要なのはunique_idで、これは先頭の@なしの公開ユーザー名です。

Q: sec_uidは何に使われますか?

sec_uidは、公開投稿を返すために文書化されたユーザー作業アクターによって要求されるアカウント識別子です。

Q: プロフィールアクターはフォロワーデモグラフィックを返しますか?

いいえ。公開プロフィールフィールドとアカウント統計を返しますが、オーディエンスの人口統計やフォロワーリストは提供しません。

Q: TikTokアカウントIDは数字として保存すべきですか?

いいえ。数字のように見える識別子は文字列として保存し、データベースや分析ツール全体で各桁を保持します。

Q: 公開TikTokプロフィールをスクレイピングすることは合法ですか?

合法性は管轄区域、目的、アクセス方法、データ、および適用される条件によります。公共のフィールドのみを使用し、収集を最小限に抑え、計画された使用について法的助言を得てください。

Q: ワークフローにはプロキシやDOMパーサーが必要ですか?

アプリケーションコードにDOMパーサーは存在しません。管理されたアクターが構造化されたデータを返すため、Scrapelessが基盤となるコレクションサーフェスを処理します。

Q: AIエージェントなしで実行できますか?

はい。Pythonの例は直接HTTPクライアントであり、エージェントとは独立して実行されます。

Scrapelessでは、適用される法律、規制、およびWebサイトのプライバシーポリシーを厳密に遵守しながら、公開されているデータのみにアクセスします。 このブログのコンテンツは、デモンストレーションのみを目的としており、違法または侵害の活動は含まれません。 このブログまたはサードパーティのリンクからの情報の使用に対するすべての責任を保証せず、放棄します。 スクレイピング活動に従事する前に、法律顧問に相談し、ターゲットウェブサイトの利用規約を確認するか、必要な許可を取得してください。

最も人気のある記事

カタログ