De volta ao blog

Pesquisa de Produtos da TikTok Shop: Compare uma Lista de Observação de Produtos

Ava Wilson
Ava Wilson

Expert in Web Scraping Technologies

03-Sep-2026

TL;DR:

  • A pesquisa de produtos da TikTok Shop precisa de uma lista de acompanhamento fornecida. O ator da página Shop avalia produtos conhecidos; não descobre todos os itens em tendência ou de alto potencial.
  • Linhas comparáveis requerem contexto de categoria e mercado. Agrupe produtos semelhantes e mantenha a região e a moeda retornadas antes de comparar preços.
  • Registros de produtos e SKUs respondem a perguntas diferentes. Um preço de produto exibido não pode representar automaticamente todas as variantes.
  • sold_count não tem uma janela de vendas recentes compartilhada na resposta documentada. Não deve decidir qual produto está vendendo mais rápido agora.
  • Classificações e contagens de avaliações precisam de rótulos de cobertura. Valores ausentes permanecem desconhecidos e não se tornam pontuações de qualidade zero.
  • Gratuito para começar. Novas contas Scrapeless incluem crédito gratuito através do Painel Scrapeless.

Introdução: a pesquisa de produtos começa antes da chamada da API

Uma tabela de pesquisa é tão boa quanto a lista de candidatos e as regras de comparação por trás dela. Misturar categorias, regiões, moedas e estruturas de variantes não relacionadas cria um ranking que parece preciso, mas não responde a uma pergunta de negócios estável.

Este fluxo de trabalho começa com uma lista de acompanhamento de produtos da TikTok Shop, curada pelo usuário. Ele coleta instantâneas de produtos públicos, separa campos de produtos e SKUs, verifica o escopo da comparação e produz uma tabela para revisão humana. Não afirma descoberta automática de produtos ou uma pontuação universal de "produto vencedor".

Use o tutorial de rastreamento de preços da TikTok Shop quando a decisão depender de mudanças em observações repetidas, em vez de uma revisão da lista de acompanhamento.

Pipeline em Um Olhar

Etapa Pergunta de pesquisa Saída
Estrutura Qual categoria, mercado e decisão estão sendo estudados? Resumo da pesquisa
Acompanhamento Quais produtos conhecidos pertencem ao escopo? Lista de acompanhamento de candidatos
Coleta O que cada página de produto público expõe agora? Instantâneas brutas
Normalizar Quais campos são de nível de produto ou de nível de SKU? Tabelas comparáveis
Revisão Quais conclusões são apoiadas ou não resolvidas? Planilha de decisão

O pipeline suporta a coleta de evidências para um conjunto de candidatos conhecido. Busca, descoberta de tendências, margem, conversão e validação de fornecedores exigem dados adicionais.

Pré-requisitos

  • Uma conta Scrapeless e token de API do Painel Scrapeless
  • Uma lista de acompanhamento CSV com ID do produto, região de solicitação, grupo de categoria e notas internas
  • Uma política de comparação escrita para moeda, variantes e valores ausentes
  • Um token ativo em SCRAPELESS_API_KEY para o bloco de coleta

O exemplo da API é uma lacuna de pré-requisito porque um credencial ativo e lista de acompanhamento de produtos pertencem ao leitor. O código não contém um produto de exemplo oculto ou resposta fabricada.

Etapa 1: Definir a Pergunta de Pesquisa e a Lista de Acompanhamento

Comece com uma decisão que pode ser revisada: compare a estrutura de oferta pública de produtos selecionados em uma categoria e mercado, ou inspecione quais candidatos têm as informações necessárias sobre variante e envio.

A lista de acompanhamento deve conter:

  • candidate_id, uma chave de string interna
  • product_id, armazenado como texto
  • request_region
  • category_group
  • inclusion_reason
  • campos opcionais internos de custo, conformidade ou revisão de fornecedor mantidos fora da resposta pública

Não peça ao coletor para decidir quais produtos são "os melhores". Os registros do catálogo explicam por que cada candidato entrou no estudo e permitem que um revisor identifique viés de seleção.

Etapa 2: Coletar uma Instantânea Atual do Produto

O ator scraper.tiktok.shop.page aceita product_id e region. Uma resposta pode incluir identidade do produto, região resolvida, vendedor, nome, sold_count, dados de preço aninhados, estoque do produto, classificação, contagem de avaliações, imagens, opções, SKUs, categorias e detalhes de envio.

Salve a resposta bruta com um timestamp de coleta antes de construir a tabela de pesquisa. Uma mudança posterior no analisador pode ser aplicada sem fingir que a linha transformada foi a fonte original.

A solicitação HTTP usa JSON e o cabeçalho x-api-token. Semântica HTTP define o modelo de solicitação-resposta, enquanto a documentação do módulo JSON do Python cobre a serialização usada abaixo.

Comece a Raspagem com Scrapeless

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

Reclame seu crédito gratuito agora no Painel Scrapeless.

Etapa 3: Construir Tabelas de Pesquisa de Produto e SKU

As linhas de produtos contêm o contexto de exibição atual: ID do produto, região retornada, ID do vendedor, nome, categoria, preço de venda e preço original, moeda, estoque agregado, avaliação, contagem de avaliações, contagem de vendas e tempo de coleta.

As linhas de SKU mantêm o contexto das variantes: ID do produto, região retornada, ID do SKU, pares de opções, preço ao nível do SKU, quantidade disponível, sinal de estoque e tempo de coleta.

A interface de busca de inventário da TikTok Shop distingue os identificadores de produto e SKU, reforçando a necessidade de duas tabelas. A referência de códigos de moeda ISO explica por que o código da moeda deve acompanhar cada preço numérico.

Nota: O código abaixo requer um token de API Scrapeless ativo em SCRAPELESS_API_KEY e um product-watchlist.csv fornecido pelo leitor.

python Copy
import csv
import json
import os
from datetime import datetime, timezone
from urllib.request import Request, urlopen

ENDPOINT = "https://api.scrapeless.com/api/v1/scraper/request"
TOKEN = os.environ["SCRAPELESS_API_KEY"]


def fetch_product(product_id, region):
    data = json.dumps({
        "actor": "scraper.tiktok.shop.page",
        "input": {"product_id": str(product_id), "region": region},
    }).encode()
    request = Request(
        ENDPOINT,
        data=data,
        headers={"x-api-token": TOKEN, "content-type": "application/json"},
        method="POST",
    )
    with urlopen(request, timeout=60) as response:
        return json.load(response)


with open("product-watchlist.csv", newline="", encoding="utf-8") as source:
    watchlist = list(csv.DictReader(source))

product_rows = []
sku_rows = []

for candidate in watchlist:
    raw = fetch_product(candidate["product_id"], candidate["request_region"])
    collected_at = datetime.now(timezone.utc).isoformat()
    product_id = str(raw.get("product_id") or candidate["product_id"])
    region = str(raw.get("region") or "")
    price = raw.get("price") or {}
    stock = raw.get("stock") or {}

    with open(f"{candidate['candidate_id']}-raw.json", "w", encoding="utf-8") as output:
        json.dump(raw, output, ensure_ascii=False, indent=2)

    product_rows.append({
        "candidate_id": candidate["candidate_id"],
        "category_group": candidate["category_group"],
        "collected_at": collected_at,
        "product_id": product_id,
        "region": region,
        "seller_id": str(raw.get("seller_id") or ""),
        "name": raw.get("name"),
        "currency": price.get("currency"),
        "sale_price": price.get("sale_price"),
        "original_price": price.get("original_price"),
        "available_quantity": stock.get("available_quantity"),
        "in_stock": stock.get("in_stock"),
        "rating": raw.get("rating"),
        "review_count": raw.get("review_count"),
        "sold_count": raw.get("sold_count"),
    })

    for sku in raw.get("skus") or []:
        sku_price = sku.get("price") or {}
        sku_rows.append({
            "candidate_id": candidate["candidate_id"],
            "product_id": product_id,
            "region": region,
            "sku_id": str(sku.get("sku_id") or ""),
            "options": " | ".join(
                f"{v.get('name', '')}={v.get('value', '')}"
                for v in (sku.get("options") or [])
            ),
            "currency": sku_price.get("currency"),
            "sale_price": sku_price.get("sale_price"),
            "available_quantity": sku.get("available_quantity"),
            "in_stock": sku.get("in_stock"),
            "collected_at": collected_at,
        })

for filename, rows in (("products.csv", product_rows), ("skus.csv", sku_rows)):
    if not rows:
        continue
    with open(filename, "w", newline="", encoding="utf-8") as output:
        writer = csv.DictWriter(output, fieldnames=rows[0].keys())
        writer.writeheader()
        writer.writerows(rows)

As duas exportações preservam seu nível de detalhe. Um produto pode ter um preço exibido enquanto os SKUs individuais expõem seu próprio preço ou disponibilidade.

Etapa 4: Aplicar Regras de Comparação Antes da Classificação

Compare candidatos apenas quando a questão da pesquisa apoiar isso:

Verificação Tratamento seguro
Categoria Compare produtos dentro do grupo de categoria declarado
Região Use a região retornada e evite alegações de disponibilidade entre mercados
Moeda Compare preços brutos apenas dentro da mesma moeda
Cobertura de variantes Relate contagem de SKU e faixa de preço em vez de um SKU arbitrário
Avaliação ausente Mantenha desconhecido; não converta em zero
Contagem de vendas Preserve como um campo de página com aparência cumulativa sem janela recente compartilhada

sold_count não estabelece velocidade recente, vendas líquidas, reembolsos, receita ou GMV. Dois produtos podem ter idades e janelas de observação diferentes, então um valor maior não prova uma demanda atual mais forte.

Etapa 5: Criar a Planilha de Pesquisa de Produto

A planilha final deve apoiar uma decisão humana em vez de escondê-la atrás de uma pontuação. Inclua:

  • Identidade do candidato e razão de inclusão
  • Mercado retornado e moeda
  • Preço atual do produto mais faixa de preço do SKU
  • Cobertura de disponibilidade ao nível do produto e ao nível da variante
  • Avaliação e contagem de avaliações com sinalizadores de valor ausente
  • Campo de contagem de vendas com um aviso de escopo
  • Campos de vendedor, categoria e envio necessários pelo resumo da pesquisa
  • Conclusão do revisor: prosseguir, segurar, rejeitar ou evidência insuficiente

Custos externos, comissão, margem, confiabilidade do fornecedor, verificações regulatórias e dados de conversão devem ser juntados a partir de fontes internas ou de primeira parte apropriadas. O instantâneo da Shop sozinho não pode responder a essas perguntas.

Lidar com a Pesquisa de Produto de Forma Responsável

Armazene apenas os campos de produto públicos necessários pelo projeto. Mantenha notas internas de fornecedores ou revisores com controle de acesso e evite copiar imagens de produtos quando uma URL de origem for suficiente. O Quadro de Privacidade NIST fornece orientações gerais para definir finalidade de coleta, acesso e retenção.

Scrapeless fornece instantâneas da Shop através da API de Scraping. Revise a página de preços atual antes de coletar uma lista de vigilância maior.

Conclusão: manter a decisão fora do coletor

A pesquisa de produto da TikTok Shop funciona melhor quando a lista de vigilância, regras de categoria e critérios de decisão são explícitos. O ator fornece observações públicas de produtos e SKUs atuais; a planilha de pesquisa preserva escopo, incerteza e as evidências ainda ausentes antes de uma decisão comercial.

Pronto para Comparar uma Lista de Vigilância de Produtos?

Junte-se ao Scrapeless Discord ou à comunidade Telegram para discutir os designs de tabelas de produtos. Crie uma conta no Scrapeless Dashboard quando a lista de candidatos estiver pronta.

FAQ

Q: O ator da Shop pode descobrir produtos em tendência automaticamente?

O ator da página da Shop avalia um ID de produto e região conhecidos. A descoberta de produtos e a classificação de tendências exigem uma fonte de candidatos e uma metodologia separadas.

Q: Quais campos pertencem a uma comparação de produtos da TikTok Shop?

Uma comparação pode incluir região retornada, moeda, preços de produtos e SKUs, disponibilidade de variantes, avaliação, contagem de avaliações, categorias, campos de vendedor e detalhes de envio quando presentes.

Q: Uma contagem de vendas maior prova vendas recentes mais fortes?
Uma contagem de vendas maior não prova vendas recentes mais fortes, pois a resposta documentada não fornece uma janela de relatório recente compartilhada, reembolsos ou um registro de pedidos completo.

P: As classificações ausentes devem ser armazenadas como zero?

Classificações ausentes devem permanecer desconhecidas. Zero é um valor definido e distorceria o filtro ou a classificação.

P: Preciso gerenciar um proxy ou parser de página de produto?

O ator gerencia sua superfície de coleta atrás da solicitação da API. O chamador define a lista de vigilância, regras de comparação, armazenamento e processo de revisão.

P: Coletar dados públicos de produtos é legal?

A legalidade depende da jurisdição, mercado, propósito, método de acesso e termos aplicáveis. Use dados públicos para um propósito permitido e obtenha aconselhamento jurídico para o fluxo de trabalho pretendido.

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