Fazer scraping de dados de vídeos do TikTok
O TikTok Videos Scraper recebe uma URL de vídeo e devolve uma linha de doze colunas: query, video_id, author, description, create_time, likes, comments, shares, plays, saves, reposts e url. Seis execuções estão por trás desta página, e elas mostram duas coisas com clareza. A primeira é que o esquema cresceu: execuções até 3 de julho devolveram dez colunas e as de 14 de julho em diante devolveram doze, acrescentando saves e reposts. Nada foi removido nem renomeado, então um importador escrito para a forma antiga ainda carrega - só faltam duas colunas, o que é um bom argumento para fixar os campos de que você precisa em vez de ler por posição.
A segunda é uma lacuna nos nossos próprios testes, e preferimos rotulá-la a escondê-la. Nenhuma das seis execuções enviou uma URL de vídeo do TikTok real. As entradas foram a página inicial do TikTok, uma página de perfil, um caminho incompleto e três ids de vídeo que eram claramente de espaço reservado ou realmente inexistentes. Todas as colunas de dados estão portanto vazias, e isso é um fato sobre o que pedimos, não um achado sobre o serviço. Não há números de engajamento, nomes de autores nem linhas de exemplo em lugar nenhum desta página, porque produzir algum significaria inventá-lo.
Vale separar isso dos nossos outros serviços de TikTok. Os scrapers de hashtags e de busca estão de fato obstruídos: ambos devolvem uma coluna de status explicando que o TikTok serve essas listas por uma API com requisição assinada em vez de no HTML da página. Nada disso apareceu aqui. Em vez disso, o serviço respondeu de forma diferente conforme o que recebia - no data para uma página inicial ou um perfil, e item doesn't exist (removed / private) para um id de vídeo bem formado sem vídeo por trás. Distinguir dois modos de falha é o que um analisador que funciona faz, então a leitura razoável é um serviço operante recebendo entradas ruins, e não uma barreira.
Mais uma observação para quem for construir em cima: a coluna url foi idêntica byte a byte a query em todas as execuções. Ela devolve a sua entrada em vez de resolver um endereço canônico, então não vai normalizar links curtos nem seguir redirecionamentos por você. E description, que deveria carregar a legenda, carregou uma string de status nas seis execuções - leia antes de tratar uma linha em branco como falha silenciosa, porque é ela que diz se o vídeo sumiu ou se a URL estava errada. Apenas páginas publicamente acessíveis, sem rastreadores de terceiros na camada de dados, e as exportações são apagadas automaticamente após 30 dias. Suas primeiras 500 linhas são grátis e não precisam de cartão - o jeito mais barato de responder à pergunta que esta página, honestamente, não consegue.