

# Como buscar publicações no X por palavra-chave e data

Você pode coletar publicações públicas do X de um período específico usando os campos nativos de início e fim em uma ferramenta dedicada de extração de resultados de busca. Um Actor é um programa de coleta de dados hospedado. Uma Task é uma configuração salva de parâmetros de entrada. O Actor coleta os registros da fonte, e você faz a análise dos dados.

A versão pública 0.1.30 do X Search aceita queries (1 a 20), searchMode (latest, top, photos, videos), maxItemsPerQuery (1 a 1000) e os campos opcionais startTime e endTime, com datas em formato de texto. Substitua toda a lista salva de 2 consultas por 1 consulta desejada e seu intervalo de datas. Use maxItemsPerQuery 2 e searchMode latest na primeira verificação de escopo limitado. Use os campos nativos startTime e endTime uma única vez, sem duplicar os filtros since ou until no texto da consulta e sem inventar parâmetros de expansão, includeReplies ou page.

A configuração de entrada do teste de controle atual usa from:OpenAI com startTime 2026-07-07 e endTime 2026-07-09. Isso gerou a consulta executada from:OpenAI since:2026-07-07 until:2026-07-10. Os 2 registros de respostas de 9 de julho tinham IDs de autor e valores de createdAt em UTC corretos nas posições 2 e 3. Também houve 1 exclusão contabilizada no total de outsideTimeRange, sem IDs excluídos informados. Isso comprova o fluxo de trabalho verificado, mas não comprova todos os operadores nem a cobertura histórica completa.

Os campos nativos usados pela ferramenta incluem inputQuery, executedQuery, searchMode, resultPosition, postId, postUrl, text, createdAt, authorId, authorHandle, authorUrl, isReply, isQuote, isRepost e observedAt. Na saída, searchMode usa Latest com inicial maiúscula, enquanto o valor permitido na entrada usa letras minúsculas. Não há um campo de status por registro no conjunto de dados.

## Passos para buscas delimitadas por data

1. Escreva a expressão desejada e o intervalo de datas antes de executar qualquer script. Mantenha maxItemsPerQuery baixo e searchMode definido como latest para uma verificação piloto.
2. Substitua a lista de consultas de exemplo por uma única consulta em formato de texto, um limite máximo de dois itens e os campos nativos startTime e endTime em formato de texto. Não duplique os termos since ou until dentro do texto da consulta.
3. Salve os textos de inputQuery e executedQuery. Por exemplo, uma solicitação com término em 9 de julho gera um limite superior exclusivo em 10 de julho, como until:2026-07-10.
4. Interprete os valores nativos de data e hora de createdAt e verifique se estão dentro de um intervalo declarado em UTC. Rótulos que mostram apenas datas nas telas não definem um fuso horário local, a menos que você faça a conversão.
5. Mantenha os valores ausentes de data e hora marcados como não resolvidos, em vez de estimá-los. Um campo createdAt vazio não pode ser ordenado com base em observedAt, que registra apenas o momento da coleta.
6. Verifique os IDs e nomes de usuário dos autores e os tipos de publicação, como respostas, citações ou republicações. Uma publicação de um autor ainda pode ser uma resposta, em vez de uma publicação original independente.
7. Inspecione os campos de nível superior de OUTPUT, como searchesQueued, searchesStarted, rowsSaved, outsideTimeRange, statusCounts e stopReason. Inspecione também o array queries, que contém inputQuery, executedQuery, status, rowsSaved, outsideTimeRange e stopReason. No nível superior, queries_exhausted significa que o processamento da fila terminou, e não que todas as publicações correspondentes na fonte foram esgotadas. Já max_items_per_query, por consulta, significa que a amostra atingiu o limite daquela consulta. Mantenha separados os resultados com falha, sem registros e que atingiram o limite. Preserve as lacunas nas posições da fonte, em vez de reclassificar os registros coletados.
8. Entregue seu registro com datas, os comprovantes dos parâmetros de entrada e as contagens de exclusões. Não suponha que uma amostra pequena represente a frequência total na plataforma ou a popularidade histórica.

## Exemplo fictício original de verificação dos limites em UTC

A tabela a seguir é um pequeno caso de teste fictício original para verificar os limites de datas em UTC em um intervalo de 1 a 4 de outubro. UTC significa Tempo Universal Coordenado. Um intervalo semiaberto inclui seu horário inicial, mas exclui seu limite superior. Pela convenção verificada para entradas que contêm apenas datas, uma solicitação de 1 a 3 de outubro, incluindo ambas as datas, corresponde a um início em 1 de outubro às 00:00 UTC e a um limite superior exclusivo em 4 de outubro às 00:00 UTC. O endTime nativo solicitado para 3 de outubro e o until gerado para 4 de outubro permanecem separados. Este é um caso de teste para o leitor verificar, e não dados reais do teste de controle do Actor.

| ID da publicação | Data e hora de criação (UTC) | Data e hora da observação | Situação em relação ao intervalo |
| --- | --- | --- | --- |
| CandidateP1 | 2026-10-01 00:00:00 | 2026-10-01 01:00:00 | Dentro |
| CandidateP2 | 2026-10-03 23:59:59 | 2026-10-04 00:00:00 | Dentro |
| CandidateP3 | 2026-10-04 00:00:00 | 2026-10-04 01:00:00 | Fora |
| CandidateP4 | null | 2026-10-03 12:00:00 | Não resolvida |

Este caso de teste mostra 2 registros dentro do intervalo, 1 fora e 1 com situação não resolvida, cuja data de criação é null. Uma amostra coletada pode não incluir publicações anteriores. Portanto, uma publicação ausente significa que ela não foi vista na amostra, e não que ela não existe no X.

## Próxima ação

Compare 1 valor de data e hora retornado em createdAt com a consulta executada que você salvou. Registre se ele está dentro do intervalo, fora do intervalo ou se sua situação é desconhecida antes de ampliar sua amostra por data. Para executar sua busca, use o [X Search Scraper Actor](https://apify.com/chronometrica/x-search-scraper) e a [X and Twitter Search API Dataset Task](https://apify.com/chronometrica/x-search-scraper/examples/x-twitter-search-api-dataset).

## Fontes e leituras adicionais

- [Discussão sobre extração de dados da web no Reddit](https://www.reddit.com/r/webscraping/comments/19bekjv/is_there_a_current_solution_to_scrap_tweets/)