De volta ao blog

Como Rasper Perfis do TikTok com Python e Scrapeless

Alex Johnson
Alex Johnson

Senior Web Scraping Engineer

01-Sep-2026

TL;DR:

  • Uma pesquisa de perfil começa com o nome de usuário. Passe unique_id sem @ para scraper.tiktok.user.detail.
  • A resposta contém campos de identidade e conta pública. Pode incluir account_id, sec_uid, apelido, URL do perfil, biografia, avatar, estatísticas, campos de localidade e flags de estado da conta.
  • sec_uid desbloqueia o próximo passo. Salve-o quando um fluxo de trabalho solicitar as postagens públicas da conta.
  • Os identificadores devem permanecer como strings. IDs grandes que parecem numéricos podem perder precisão quando sistemas posteriores os convertem em números.
  • Os dados do perfil não são dados de público. O ator não expõe listas de seguidores ou demografia do público.
  • Gratuito para começar. Novas contas Scrapeless incluem crédito gratuito através do Painel Scrapeless.

Introdução: resolver uma conta pública em um registro estável

Um nome de usuário é conveniente para entrada, mas é apenas uma parte de um registro útil do criador. Um trabalho de pesquisa ou monitoramento também precisa de um identificador de conta estável, o sec_uid exigido pelo ator da postagem, estatísticas públicas e contexto suficiente para distinguir contas com nomes exibidos semelhantes.

O scraper de perfil do TikTok Scrapeless empacota essa pesquisa como uma solicitação JSON. O Python pode então validar a resposta, escolher os campos necessários e armazenar um registro compacto sem analisar HTML renderizado. Para o mapa de atores mais amplo, veja o guia da API do Scraper Scrapeless.

O que o Ator de Perfil Retorna

scraper.tiktok.user.detail aceita unique_id, o nome de usuário visível sem o @ à frente. Uma resposta bem-sucedida pode incluir:

  • account_id, unique_id, e sec_uid
  • apelido, URL do perfil, biografia e avatar
  • estatísticas de seguidores, seguindo, amigos, curtidas, vídeos e vídeos curtidos
  • horário de criação da conta, língua e país
  • verificação, privacidade e flags de vendedor

Os campos podem estar ausentes ou vazios. Uma flag de conta privada é um estado da conta, não permissão para acessar conteúdo privado. Este guia usa apenas a resposta de perfil público documentada.

Por que Usar a API de Scraping Scrapeless

Scrapeless executa o ator de perfil do TikTok por trás de um único endpoint HTTP e retorna JSON estruturado. Isso fornece aos trabalhos em Python um envelope de solicitação consistente e remove o código de seletor de página da aplicação.

A superfície da API está documentada na referência de detalhes do usuário do TikTok. Scrapeless agrupa o ator sob a API de Scraping; verifique os preços atuais antes de definir um cronograma de coleta de produção.

Requisitos

  • Python com a biblioteca padrão
  • Uma conta Scrapeless e um token da API do Painel Scrapeless
  • Um nome de usuário público do TikTok relevante para o projeto
  • Uma lista de campos definida, propósito e período de retenção

O exemplo requer um token ao vivo em SCRAPELESS_API_KEY. Forneça o nome de usuário através de TIKTOK_USERNAME sem @.

Solicitar um Perfil do TikTok em Python

O código usa os módulos HTTP e JSON embutidos do Python. A documentação do urllib.request cobre o objeto de solicitação, enquanto a documentação do módulo JSON define o codificador e decodificador usados abaixo.

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))

Comece a Raspagem com Scrapeless

Potencialize seu fluxo de trabalho de raspagem da web e automação com Scrapeless!
Inscreva-se hoje e receba $5 em crédito gratuitosem necessidade de cartão de crédito.

Reivindique seu crédito gratuito agora no Painel Scrapeless.

Mapeie a Resposta para o Seu Modelo de Dados

Mantenha três campos de identidade

unique_id é o identificador da conta legível por humanos. account_id é um identificador de conta. sec_uid é a entrada necessária por scraper.tiktok.user.work. Mantenha todos os três em vez de escolher uma chave universal.

Preserve o objeto de estatísticas

Contagens públicas são valores pontuais. Uma tabela de análises normalizada pode extrair contagens selecionadas, mas o objeto de estatísticas brutas deve permanecer disponível para que uma mudança de esquema não apague o contexto de origem.

Trate as flags da conta como anuláveis

Verificação, privacidade e bandeiras de vendedor são úteis quando estão presentes. Se um campo estiver ausente, armazene como desconhecido em vez de falso. A mesma regra se aplica a idioma, país, bio e avatar.

Anexe seu próprio carimbo de data/hora de coleção

A resposta do perfil descreve a conta quando o ator foi executado. Adicione um carimbo de data/hora de observação em UTC no aplicativo chamador e mantenha-o separado de qualquer horário de criação de conta retornado pelo TikTok.

Obtenha sec_uid de um Nome de Usuário

A solicitação de perfil é a ponte documentada de nome de usuário para coleção de posts. Após armazenar sec_uid, uma segunda solicitação pode usar scraper.tiktok.user.work com cursor e count. A referência ao ator do trabalho do usuário descreve essas entradas.

Evite derivar sec_uid de uma URL de perfil ou tratá-lo como intercambiável com o nome de usuário. Use o campo retornado. Se estiver ausente, mantenha o registro do perfil e marque a coleção de posts como indisponível para essa observação.

Valide Antes da Exportação

Um pequeno conjunto de verificações evita linhas enganosas:

  1. Confirme unique_id que corresponde à conta pretendida após normalização de caso e @ inicial.
  2. Mantenha account_id como uma string.
  3. Aceite valores de biografia, localidade ou avatar vazios.
  4. Exija sec_uid somente quando o próximo trabalho precisar de posts.
  5. Registre o status HTTP e um corpo de erro redigido quando uma solicitação falhar.

O endpoint usa semânticas HTTP normais; RFC 9110 é a referência principal para o significado do código de status. Os logs da aplicação nunca devem incluir o token da API.

Lide com Dados de Perfil Público Responsavelmente

Colete o menor conjunto de campos que responda à pergunta de pesquisa. Restrinja o acesso aos registros de perfil armazenados, exclua dados quando o período de retenção terminar e evite usar contagens públicas para inferir traços sensíveis. O NIST Privacy Framework fornece um vocabulário prático para mapear processamento de dados ao risco de privacidade.

Uma resposta de perfil suporta pesquisa em nível de conta. Não fornece a identidade de seguidores, demografia de público, posts privados ou permissão para perfilamento não relacionado.

Conclusão: use o perfil como a camada de identidade

Um scraper de perfil do TikTok deve produzir um registro de conta estável e mínimo a partir de um nome de usuário. Salve account_id, unique_id e sec_uid, preserve campos anuláveis, carimbe a observação com data/hora e passe sec_uid adiante somente quando um fluxo de trabalho de post precisar disso.

Pronto para Construir Seu Conjunto de Dados de Perfil do TikTok?

Junte-se ao Scrapeless Discord ou à comunidade do Telegram para discussão sobre implementação. Crie uma conta no Scrapeless Dashboard quando a lista de campos e a política de armazenamento estiverem prontas.

FAQ

Q: Que entrada o scraper de perfil do TikTok precisa?

Ele precisa de unique_id, que é o nome de usuário público sem o @ inicial.

Q: Para que é usado sec_uid?

sec_uid é o identificador da conta exigido pelo ator de trabalho de usuário documentado que retorna posts públicos.

Q: O ator de perfil pode retornar demografia de seguidores?

Não. Ele retorna campos de perfil público e estatísticas de conta, não demografia do público ou listas de seguidores.

Q: Os IDs das contas do TikTok devem ser armazenados como números?

Não. Armazene identificadores que parecem numéricos como strings para preservar cada dígito entre bancos de dados e ferramentas de análise.

Q: Extrair um perfil público do TikTok é legal?

A legalidade depende da jurisdição, propósito, método de acesso, dados e termos aplicáveis. Use apenas campos públicos, minimize a coleta e obtenha aconselhamento jurídico para o uso planejado.

Q: O fluxo de trabalho precisa de um proxy ou parser DOM?

Nenhum parser DOM aparece no código da aplicação porque o ator gerenciado retorna dados estruturados. Scrapeless lida com a superfície de coleta subjacente.

Q: Isso pode ser executado sem um agente de IA?

Sim. O exemplo em Python é um cliente HTTP direto e é executado independentemente de um agente.

Na Scorretless, acessamos apenas dados disponíveis ao público, enquanto cumprem estritamente as leis, regulamentos e políticas de privacidade do site aplicáveis. O conteúdo deste blog é apenas para fins de demonstração e não envolve atividades ilegais ou infratoras. Não temos garantias e negamos toda a responsabilidade pelo uso de informações deste blog ou links de terceiros. Antes de se envolver em qualquer atividade de raspagem, consulte seu consultor jurídico e revise os termos de serviço do site de destino ou obtenha as permissões necessárias.

Artigos mais populares

Catálogo