Volver al blog

Rastrea el Crecimiento de Seguidores de TikTok con Instantáneas de Perfil

Emily Chen
Emily Chen

Advanced Data Extraction Specialist

03-Sep-2026

TL;DR:

  • El seguimiento del crecimiento de seguidores de TikTok comienza cuando comienza la colección. El actor del perfil devuelve un conteo público actual, no una serie histórica.
  • Cada observación necesita un estado de colección. Una colección fallida y un conteo de seguidores sin cambios son resultados diferentes.
  • La identidad de la cuenta debe sobrevivir a los cambios de nombre. Almacene account_id, sec_uid y el unique_id observado juntos.
  • El crecimiento es una diferencia entre instantáneas comparables. Reste conteos válidos consecutivos para la misma cuenta y mantenga ambas marcas de tiempo.
  • El crecimiento de seguidores no identifica su causa. Un cambio no puede atribuirse a un video o campaña sin evidencia separada.
  • Gratis para comenzar. Las nuevas cuentas de Scrapeless incluyen crédito gratuito a través del Tablero de Scrapeless.

Introducción: un conteo de perfil se vuelve útil después de la segunda observación

Un conteo público de seguidores es una instantánea. Se convierte en un registro de crecimiento solo después de que se recoge la misma cuenta nuevamente y se comparan las dos observaciones válidas.

Este tutorial construye un pequeño pipeline de seguimiento del crecimiento de seguidores de TikTok con el actor del perfil de Scrapeless, Python y SQLite. Preserva identificadores de cuentas, guarda estados de colección exitosos y fallidos por separado, calcula cambios a partir de instantáneas válidas consecutivas y produce filas para un panel de crecimiento de creadores.

Los campos de perfil subyacentes y las claves de identidad se cubren en el tutorial de raspado de perfil de TikTok.

Pipeline a Simple Vista

Etapa Acción Salida duradera
Definir Proveer las cuentas a rastrear Lista de cuentas
Recopilar Solicitar cada perfil público actual Registro de JSON crudo o error
Normalizar Extraer identidad y estadísticas Fila de instantánea de perfil
Comparar Unir instantáneas exitosas consecutivas Fila de cambio de seguidores
Reportar Graficar niveles y cambios Entrada del panel de crecimiento

El pipeline crea historia desde el día en que comienza a recopilar. No reconstruye conteos de seguidores de fechas anteriores a la primera observación almacenada.

Requisitos Previos

  • Una cuenta de Scrapeless y un token de API del Tablero de Scrapeless
  • Una lista mantenida por el usuario de nombres de usuario públicos de TikTok
  • Un cronograma de colección apropiado para la necesidad de informes
  • Un token en vivo en SCRAPELESS_API_KEY para el bloque de API a continuación

El ejemplo completo tiene una brecha de requisitos previos porque el lector debe proporcionar una credencial en vivo y una lista de cuentas. El artículo no incrusta credenciales ni presenta respuestas de perfil fabricadas.

Etapa 1: Definir la Lista de Cuentas

Una lista debe contener una clave interna estable, el nombre de usuario actual, la razón comercial para rastrearlo y si el registro permanece activo. Los nombres de usuario son entradas convenientes para solicitudes, pero no deberían convertirse en la única clave de la base de datos.

El actor scraper.tiktok.user.detail acepta unique_id sin el @ inicial. Su respuesta puede incluir account_id, unique_id, sec_uid, campos de perfil públicos, banderas de cuenta y un objeto statistics que contiene conteos de seguidores, seguidos, amigos, me gusta, videos y videos que gustan.

Mantenga los ID de cuentas que parecen numéricos como cadenas. Preserve los tres identificadores para que un cambio de nombre posterior no cree silenciosamente una nueva serie histórica.

Etapa 2: Capturar una Instantánea de Perfil con Marca de Tiempo

Cada intento de colección necesita una marca de tiempo de aplicación y un estado. Una fila exitosa almacena los identificadores y estadísticas devueltos. Un intento fallido almacena la clave de la cuenta, el tiempo de intento y un estado de error conciso sin copiar conteos faltantes como cero.

La documentación de datetime de Python describe marcas de tiempo con conocimiento de zona horaria. Use un estándar de zona horaria en el almacenamiento y aplique zonas horarias de visualización solo en la capa de informes.

La documentación oficial de información del usuario de TikTok también trata los campos de usuario como una respuesta actual en lugar de un flujo de historial de cuentas. Por lo tanto, el pipeline de Scrapeless construye su propio historial de observaciones.

Comienza a raspar con Scrapeless

¡Potencia tu flujo de trabajo de raspado web y automatización con Scrapeless!
Regístrate hoy y obtén $5 en crédito gratuitosin tarjeta de crédito requerida.

Reclama tu crédito gratuito ahora en el Tablero de Scrapeless.

Etapa 3: Almacenar Éxitos y Brechas de Colección por Separado

SQLite admite una tabla de instantáneas compactas solo para agregar. La documentación de restricciones de tabla de SQLite explica la clave compuesta utilizada para evitar observaciones duplicadas.

Nota: El código a continuación requiere un token de API de Scrapeless activo en SCRAPELESS_API_KEY y nombres de usuario públicos separados por comas en TIKTOK_USERNAMES.

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

ENDPOINT = "https://api.scrapeless.com/api/v1/scraper/request"
TOKEN = os.environ["SCRAPELESS_API_KEY"]
USERNAMES = [v.strip().lstrip("@") for v in os.environ["TIKTOK_USERNAMES"].split(",") if v.strip()]


def get_profile(username):
    body = json.dumps({
        "actor": "scraper.tiktok.user.detail",
        "input": {"unique_id": username},
    }).encode()
    request = Request(
        ENDPOINT,
        data=body,
        headers={"x-api-token": TOKEN, "content-type": "application/json"},
        method="POST",
    )
    with urlopen(request, timeout=60) as response:
        return json.load(response)


database = sqlite3.connect("tiktok-profile-history.sqlite3")
database.execute("""
CREATE TABLE IF NOT EXISTS profile_snapshots (
    roster_username TEXT NOT NULL,
    collected_at TEXT NOT NULL,
    collection_status TEXT NOT NULL,
    account_id TEXT,
    unique_id TEXT,
    sec_uid TEXT,
    followers INTEGER,
    following INTEGER,
    likes INTEGER,
    videos INTEGER,
    error_code TEXT,
    raw_json TEXT,
    PRIMARY KEY (roster_username, collected_at)
)
""")

for username in USERNAMES:
    collected_at = datetime.now(timezone.utc).isoformat()
    try:
        profile = get_profile(username)
        statistics = profile.get("statistics") or {}
        database.execute(
            "INSERT INTO profile_snapshots VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
            (
                username, collected_at, "success",
                str(profile.get("account_id") or ""), profile.get("unique_id"),
                profile.get("sec_uid"), statistics.get("followers"),
                statistics.get("following"), statistics.get("likes"),
                statistics.get("videos"), None,
                json.dumps(profile, ensure_ascii=False),
            ),
        )
    except HTTPError as error:
        database.execute(
            "INSERT INTO profile_snapshots VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
            (username, collected_at, "failed", None, None, None, None, None, None, None,
             str(error.code), None),
        )

database.commit()
database.close()

La columna collection_status mantiene visible un hueco. Previene que una consulta de informe trate una observación no disponible como ningún cambio en seguidores.

Etapa 4: Calcular el Crecimiento a Partir de Instantáneas Válidas Consecutivas

El crecimiento de seguidores es el conteo válido posterior menos el conteo válido anterior para el mismo account_id. Mantén las marcas de tiempo de inicio y fin, ambos conteos fuente, la diferencia y la duración transcurrida.

Utiliza la identidad de la cuenta antes del nombre de usuario al unirte. Si un nombre de usuario observado cambia mientras account_id permanece estable, mantén una serie y conserva el identificador registrado en cada instantánea. Si los campos de identidad entran en conflicto, detén la unión y envía la fila para su revisión.

Las funciones de ventana SQL pueden emparejar filas exitosas sin sobrescribir las observaciones originales:

sql Copy
SELECT
  account_id,
  unique_id,
  collected_at,
  followers,
  followers - LAG(followers) OVER (
    PARTITION BY account_id ORDER BY collected_at
  ) AS follower_change
FROM profile_snapshots
WHERE collection_status = 'success' AND followers IS NOT NULL;

El resultado mide el cambio entre observaciones almacenadas. No es una tasa de crecimiento diaria a menos que las observaciones estén separadas por el intervalo exacto que el informe etiqueta.

Etapa 5: Construir el Panel de Crecimiento de Creadores

Un panel útil muestra la calidad de los datos junto al crecimiento:

  • Conteo de seguidores válidos más reciente y su hora de recolección
  • Cambio desde la instantánea válida anterior
  • Cambio a través de un intervalo de informe claramente etiquetado
  • Número de observaciones exitosas y huecos de recolección
  • Nombre de usuario observado actual más ID de cuenta estable
  • Fecha de la primera observación almacenada, que define el límite histórico

Grafica el nivel de seguidores y el cambio de seguidores por separado. Un gráfico de nivel muestra la serie acumulada; un gráfico de cambio facilita la revisión de huecos de recolección y diferencias repentinas.

Manejar los Datos del Perfil de Manera Responsable

Las estadísticas del perfil público aún pueden ser datos personales. Limita la lista de cuentas al propósito declarado, restrige el acceso a las respuestas en bruto y define cuándo deben eliminarse las instantáneas antiguas. El Marco de Privacidad de NIST proporciona una estructura para identificar y gestionar el riesgo de recolección.

No infieras la demografía de la audiencia, las identidades de los seguidores o la causa del crecimiento a partir de la respuesta del perfil. Un cambio en el conteo puede coincidir con una campaña o publicación, pero la coincidencia no es atribución.

Scrapeless expone al actor del perfil a través de Scraping API. Consulta la página de precios actual antes de establecer el conteo de cuentas y el horario.

Conclusión: la historia comienza con una línea base registrada

El seguimiento del crecimiento de seguidores de TikTok necesita una identidad de cuenta estable, conteos válidos con marcas de tiempo y huecos de recolección explícitos. Una vez que existe la línea base, las instantáneas consecutivas pueden soportar una curva de crecimiento sin afirmar una historia de plataforma no disponible o atribuir el cambio a una pieza de contenido.

¿Listo para construir un rastreador de estadísticas de perfil?

Únete al Discord de Scrapeless o a la comunidad de Telegram para comparar esquemas de instantáneas. Crea una cuenta en el Panel de Scrapeless cuando la lista de cuentas esté lista.

FAQ

P: ¿Puede un rastreador de seguidores de TikTok recuperar conteos históricos?

El flujo de trabajo no puede recuperar conteos de antes de que comenzara la recolección. Su primera observación exitosa se convierte en la línea base para comparaciones posteriores.

P: ¿Cuál es la diferencia entre no crecimiento y un fallo de recolección?

No crecimiento significa que dos instantáneas válidas contienen el mismo conteo de seguidores. Un fallo de recolección significa que el conteo posterior es desconocido y no se debe calcular ninguna diferencia.

P: ¿Se puede atribuir el crecimiento de seguidores a un video de TikTok?

El crecimiento de seguidores no se puede atribuir a un video a partir de instantáneas de perfil solas. La atribución requiere un experimento separado o evidencia de campaña de primera parte.

P: ¿Expone el flujo de trabajo las identidades o demografías de los seguidores?

El actor del perfil devuelve estadísticas de cuenta públicas, no listas de seguidores ni demografías de audiencia.

P: ¿Necesito gestionar un proxy o un analizador de páginas de perfil?

El actor maneja su superficie de recolección detrás de la solicitud de API. El llamador gestiona la lista, el horario, el almacenamiento, las comparaciones y la elaboración de informes.

P: ¿Es legal recolectar conteos de seguidores públicos?
La legalidad depende de la jurisdicción, el propósito, el método de acceso, los datos y los términos aplicables. Minimice la recopilación, documente el propósito y obtenga asesoría legal para el uso específico.

En Scrapeless, solo accedemos a datos disponibles públicamente y cumplimos estrictamente con las leyes, regulaciones y políticas de privacidad del sitio web aplicables. El contenido de este blog es sólo para fines de demostración y no implica ninguna actividad ilegal o infractora. No ofrecemos garantías y renunciamos a toda responsabilidad por el uso de la información de este blog o enlaces de terceros. Antes de realizar cualquier actividad de scraping, consulte a su asesor legal y revise los términos de servicio del sitio web de destino u obtenga los permisos necesarios.

Artículos más populares

Catalogar