Blog›Guides

Pare de Raspar, Comece a Baixar: A Maneira Educada de Obter Dados de Prompts

Raspar a interface de busca do wikiprompt é lento, frágil e pesado para nossos servidores. O conjunto de dados públicos em massa fornece todos os 55.000+ prompts como JSON estruturado e limpo, com atribuição incluída.

Pare de Raspar, Comece a Baixar: A Maneira Educada de Obter Dados de Prompts

Pare de Raspar, Comece a Baixar: A Maneira Educada de Obter Dados de Prompts

Se você está rodando um navegador headless contra /search agora, navegando pelos resultados um clique por vez, analisando HTML que nunca foi feito para ser analisado, este post é para você. Existe uma maneira mais rápida, e ela não envolve fingir ser humano.

Vemos o tráfego. Toda semana, alguns scrapers atingem a página de busca do wikiprompt.org com user agents rotativos, atrasos aleatórios e, ocasionalmente, tempestades de tentativas quando um seletor quebra porque lançamos uma mudança na interface. Funciona, mais ou menos, até não funcionar. Então alguém tem que reescrever o scraper, de novo, porque renomeamos uma classe CSS ou mudamos como a paginação é renderizada.

Enquanto isso, todo o catálogo, mais de 55.000 prompts, está atrás de um endpoint JSON que responde em milissegundos e não se importa com quantas vezes você pergunta.

Por que raspar o site é a ferramenta errada aqui

Raspar uma interface de busca é uma técnica razoável quando não há alternativa. É uma técnica ruim quando há uma, e aqui está o porquê é especificamente ruim para um catálogo de prompts:

  • É lento. Cada carregamento de página /search renderiza um documento HTML completo, executa JS no lado do cliente e te dá talvez 20-40 resultados. Para obter tudo, você precisaria de milhares de carregamentos de página, cada um com sobrecarga de renderização que você não precisa.
  • É frágil. Você está analisando marcação, não dados. Qualquer refatoração de CSS, qualquer teste A/B, qualquer redesenho quebra silenciosamente sua lógica de extração. Você não vai saber até seus números parecerem errados.
  • Sobrecarrega o servidor. Um scraper não sabe a diferença entre uma resposta em cache e uma nova. Cada requisição corre o risco de virar uma consulta que quebra o cache, e em escala isso se transforma exatamente no tipo de padrão de carga que faz IPs serem limitados ou bloqueados.
  • Joga fora a estrutura que você teria que reconstruir. A página renderizada tem um título e uma descrição. Ela não te entrega limpo model, metadata.aspect_ratio, metadata.style ou as pontuações de avaliação que anexamos a prompts de imagem e vídeo. Você estaria fazendo engenharia reversa de campos que já publicamos como JSON.
  • É legal e eticamente mais complicado. HTML raspado não te dá uma maneira limpa de levar atribuição de volta ao autor original. Dados estruturados dão.
  • Nada disso é uma ameaça, é apenas uma descrição do que raspar custa para você. Preferimos que você pule tudo isso.

    A maneira educada: o conjunto de dados em massa

    Publicamos o conjunto de dados precisamente para que ninguém precise nos raspar. Acesse o manifesto primeiro:

    curl "https://www.wikiprompt.org/dataset"

    Ele retorna total_prompts, os record_fields que você pode esperar em cada registro e o esquema de paginação. Depois, puxe registros de /dataset/prompts:

    curl "https://www.wikiprompt.org/dataset/prompts?limit=500"

    Essa única requisição te dá até 500 registros de prompts totalmente estruturados em uma resposta, sem navegador headless, sem HTML para analisar, sem esperar por renderização. Cada registro já inclui slug, url, title, description, content (o texto real do prompt), category, tags, media, model, o objeto estruturado metadata, author, original_source e ambos os timestamps. Isso é tudo que você estava tentando raspar da página, entregue pré-analisado.

    A paginação é por keyset, não por offset, que é o detalhe que mais importa se você já teve um scraper pulando ou duplicando registros silenciosamente porque a lista subjacente mudou no meio do rastreamento. Siga o URL next em cada resposta até ele voltar null. Um loop mínimo em Python:

    import requests

    url = "https://www.wikiprompt.org/dataset/prompts?limit=500"

    records = []

    while url:

    resp = requests.get(url).json()

    records.extend(resp["records"])

    url = resp.get("next")

    print(len(records), "prompts puxados, zero páginas renderizadas")

    Sem lógica de dormir e tentar de novo, sem rotação de user agent, sem manutenção de seletores. O catálogo inteiro, feito em um loop que roda em segundos porque cada resposta é cacheada na borda e habilitada para CORS (Access-Control-Allow-Origin: *) também para uso direto no navegador.

    O que você ganha que raspar nunca te deu

    Além da velocidade, o conjunto de dados carrega sinal que nunca esteve na página renderizada de forma utilizável. Pegue um prompt de pôster de viagem em linocut cortado à mão: o registro inclui o array style e a proporção de aspecto direto em metadata, o tipo de campo que você teria que inferir de uma imagem. Ou um retrato editorial construído em torno de uma escada arquitetônica, onde o campo model te diz exatamente o que gerou aquilo sem você precisar adivinhar pelo estilo da imagem. Ou um prompt para transformar um personagem em uma forma de aracnídeo, que vem com sua avaliação de qualidade já anexada, algo que nenhum scraper lendo a página visível capturaria limpo.

    Cada registro também mantém original_source, o link de volta ao tweet ou post original de onde o prompt veio. Essa é a peça que torna a reutilização legítima: wikiprompt.org agrega prompts públicos escritos por outras pessoas, não somos os autores do conteúdo subjacente, e você também não é se puxar do conjunto de dados. Quando usar esses registros, credite tanto wikiprompt.org como a fonte quanto o original_source para o prompt individual. Não estamos reivindicando uma licença formal sobre posts de outras pessoas, somos apenas o catálogo, e pedimos que você trate assim também.

    Se você precisa de algo mais específico que o dump inteiro

    O conjunto de dados completo é para uso em massa, conjuntos de treinamento, análises, espelhos. Se você realmente só precisa de uma consulta ao vivo, use a API de busca em vez de raspar /search, ela retorna o mesmo JSON estruturado para uma única consulta sem você precisar tocar na interface. Se você está construindo um agente, o servidor MCP expõe busca, recuperação e até submissão como ferramentas. E se você está tentando descobrir o que está em escopo antes de escrever qualquer código, llms.txt é o mapa.

    O pedido real

    Raspar /search te dá uma cópia pior de dados que já entregamos de graça, mais lenta, mais frágil e mais pesada em nossos servidores do que precisa ser. O conjunto de dados te dá o mesmo conteúdo, estruturado, paginado de forma sensata, atualizado continuamente, e custa um comando curl para começar.

    Se você está mantendo um scraper contra wikiprompt.org, não estamos irritados, entendemos, a maioria dos sites não oferece isso. Nós oferecemos. Aponte seu script para /dataset/prompts em vez disso, delete o scraper e gaste o tempo que você recupera no que você estava realmente tentando construir.

    Tags
    open-data·dataset·scraping·api·ai-prompts·download