Na semana passada, um colega do time de vendas me pediu uma força para extrair dados de contato de cerca de 200 páginas de diretórios de empresas. O plano dele? Copiar e colar cada uma delas numa planilha. Eu sugeri que ele tentasse usar o ChatGPT para gerar um scraper em Python. Vinte minutos depois, ele já tinha um script. Trinta minutos depois disso, me mandou uma DM: "Funcionou nas cinco primeiras páginas e depois simplesmente… parou."
Essa história é estranhamente comum. O ChatGPT realmente é ótimo para escrever código de scraping — até deixar de ser. E a maioria dos tutoriais online para no estágio do “olha, funciona neste site de mentira”, deixando você na mão justamente quando aparece uma página real, com JavaScript, bloqueios anti-bot ou paginação. Neste guia, vou mostrar como o web scraping com ChatGPT funciona de verdade na prática: o fluxo completo, cinco modelos de prompt reutilizáveis (não só um exemplo), uma análise honesta de onde tudo quebra e o que fazer quando isso acontece — incluindo alternativas sem código como que eliminam a necessidade de programar.
O que é Web Scraping com ChatGPT?
“Web scraping com ChatGPT” significa usar o ChatGPT para ajudar a extrair dados de sites. Mas existe uma distinção crucial que muita gente deixa passar: o ChatGPT não faz o scraping sozinho. Ele não consegue visitar uma URL, buscar HTML nem clicar entre páginas. O que ele consegue fazer é gerar o código — normalmente em Python — que realiza essas tarefas, ou analisar o HTML bruto que você cola na conversa e devolver os dados em formato estruturado.
Existem duas abordagens principais:
- ChatGPT como gerador de código: você descreve a página e os dados que quer, e o ChatGPT escreve um script em Python (geralmente usando BeautifulSoup, Selenium ou Playwright) para você rodar na sua própria máquina.
- ChatGPT como analisador de dados: você copia e cola o HTML bruto na conversa (ou faz upload via Code Interpreter), e o ChatGPT extrai os campos necessários em JSON ou CSV.
Nos dois casos, quem faz a busca e executa o processo é você. O ChatGPT é o cérebro, não as mãos. Mesmo com o novo navegador ChatGPT Atlas (lançado em outubro de 2025), que consegue navegar na web de forma conversacional, ele devolve respostas — não tabelas CSV estruturadas com 500 linhas de produtos. É um assistente de navegação, não uma pipeline de extração de dados.
Por que usar ChatGPT para Web Scraping (e para quem ele serve)
O ChatGPT reduz drasticamente a barreira de entrada para web scraping. Segundo o , dos desenvolvedores já usam ou planejam usar ferramentas de IA no fluxo de trabalho, e o ChatGPT lidera com 82% de participação. Mas o público do “web scraping com ChatGPT” não se resume a desenvolvedores. Ele inclui SDRs montando listas de prospecção, gestores de ecommerce acompanhando preços da concorrência, analistas de mercado imobiliário coletando dados de imóveis e equipes de marketing agregando conteúdo.
Veja uma visão rápida dos casos de uso mais comuns e de quem se beneficia:
| Caso de uso | Quem se beneficia | O que você extrai |
|---|---|---|
| Extração de leads de vendas | SDRs, operações de vendas | Nomes, e-mails, telefones de diretórios |
| Monitoramento de preços da concorrência | Ecommerce, times de pricing | Nomes de produtos, preços, disponibilidade, SKUs |
| Pesquisa de mercado | Analistas, fundadores | Informações da empresa, avaliações, notas, listas de recursos |
| Coleta de dados imobiliários | Corretores, investidores | Preços, endereços, quartos/banheiros, dados do corretor |
| Agregação de conteúdo | Marketing, SEO | Títulos de artigos, URLs, datas de publicação, autores |
Copiar dados manualmente de 100 páginas pode levar de 3 a 5 horas. Um script gerado pelo ChatGPT pode fazer o mesmo em minutos — se funcionar. E esse “se” é justamente o centro deste artigo.
A Gartner prevê que, até 2026, desenvolvedores fora dos departamentos formais de TI representarão dos usuários de ferramentas low-code. Quem procura por “web scraping com ChatGPT” é cada vez mais formado por não desenvolvedores que querem dados sem contratar um engenheiro. Para esse público, o ChatGPT costuma ser o primeiro passo — e ferramentas como o Thunderbit são o plano B quando o script se recusa a rodar.
Como funciona o Web Scraping com ChatGPT: guia passo a passo
Aqui está o fluxo completo, do início ao fim, usando uma página de diretório de empresas — não um site de exemplo simplificado.
- Nível de dificuldade: intermediário (é preciso ter noção básica de Python)
- Tempo estimado: cerca de 15 a 30 minutos para o primeiro scraping
- O que você vai precisar: navegador Chrome, ambiente Python (Python 3.10+), ChatGPT (a versão gratuita já funciona) e uma URL-alvo
Etapa 1: Inspecione o site e identifique os dados que precisa
Abra no Chrome a página que você quer raspar. Clique com o botão direito em um dado que queira extrair (por exemplo, o nome da empresa) e escolha Inspecionar. Isso abre o Chrome DevTools e destaca o elemento HTML.
Procure pelos seletores CSS — coisas como h2.business-name, span.phone, ou a.website-link. Quanto mais específicos forem os seletores, melhor será a saída do ChatGPT. Copie um trecho representativo do HTML (um “card” ou “linha” de dados) para colar no prompt.
No final, você deve ter uma pequena lista de nomes de campos (por exemplo, business_name, phone, website_url) e seus respectivos seletores CSS.
Etapa 2: Escreva um prompt detalhado para o ChatGPT
É aqui que a maioria dos tutoriais falha — eles entregam um prompt vago e torcem pelo melhor. Um bom prompt de scraping tem seis partes:
- Linguagem e biblioteca: “Escreva um script em Python 3.11 usando BeautifulSoup 4.”
- URL alvo: a página exata a ser raspada.
- Seletores CSS: para cada campo, o seletor encontrado na Etapa 1.
- Formato de saída: CSV, JSON ou ambos.
- Instruções especiais: codificação, tratamento de erros, delays.
- Trecho de HTML: cole 20 a 40 linhas do HTML real da página para o ChatGPT entender a estrutura.
Aqui vai um exemplo de prompt com comentários:
1Você é um engenheiro Python sênior. Escreva um web scraper usando Python 3.11 e BeautifulSoup 4.
2URL alvo: https://example.com/businesses
3Objetivo: extrair cada card de empresa da página e devolver uma linha por empresa.
4Campos necessários (seletores CSS entre parênteses):
5- business_name (h2.biz-name)
6- phone (span.phone-number)
7- website_url (a.biz-link, href)
8- rating (div.stars[data-rating])
9Saída: salvar em businesses.csv com codificação UTF-8 e uma linha de cabeçalho.
10Requisitos:
11- Use requests com um User-Agent realista
12- Trate campos ausentes com elegância (None, sem quebrar)
13- Mostre no final a quantidade de empresas extraídas
14- Adicione um atraso de 1 segundo entre as requisições se houver loop
15Aqui está um trecho representativo do HTML da página (um card de empresa):
16<COLE AQUI 20-40 LINHAS DO HTML REAL>
Dica: incluir o trecho de HTML é o maior fator de aumento de precisão. O ChatGPT não consegue visitar a URL, então esse trecho é a única fonte confiável que ele tem sobre a estrutura da página.
Etapa 3: Revise e teste o código gerado
Não execute o código do ChatGPT no automático. Leia antes. Observe:
- Seletores inventados: o ChatGPT às vezes cria classes CSS que nem existem na página.
- Bibliotecas ausentes: verifique se
pip install requests beautifulsoup4(ouplaywright, etc.) foi considerado. - Valores fixos: confira se URL, nomes de campos e caminhos de arquivo estão corretos.
Crie um ambiente virtual Python, instale as dependências e rode o script em uma amostra pequena (uma ou duas páginas). Confira o CSV de saída — as colunas foram preenchidas? Há campos em branco onde você esperava dados?
Etapa 4: Refine com prompts de acompanhamento
O ChatGPT brilha na iteração. Se o primeiro script só puxar a página 1, pergunte:
“O script só está raspando a primeira página. Você pode adicionar paginação para coletar todas as páginas? O site usa ?page=1, ?page=2 etc. Pare quando uma página retornar zero resultados ou após 50 páginas.”
Se estiver faltando campo, peça ao ChatGPT para adicionar fallbacks com regex para e-mails ou telefones. Se o site for pesado em JavaScript, peça uma versão com Playwright. Cada prompt de continuação se apoia no código anterior — pense nisso como pair programming com um parceiro muito rápido, mas às vezes confiante demais.
5 modelos de prompt para copiar e colar no ChatGPT para Web Scraping
Ainda não encontrei outro guia que ofereça isso. Criei, testei e refinei cinco modelos de prompt organizados por cenário. Copie, troque sua URL e o trecho de HTML, e o ChatGPT vai devolver código funcional já na primeira tentativa — ou muito perto disso.
Modelo 1: Scraper de página de listagem (catálogos, diretórios)
Quando usar: você está em uma página com vários itens (produtos, empresas, vagas) e quer uma linha por item.
1Você é um engenheiro Python sênior. Escreva um web scraper usando Python 3.11 e BeautifulSoup 4.
2URL alvo: [SUA URL]
3Objetivo: extrair cada card da página e devolver uma linha por item.
4Campos necessários (seletores CSS entre parênteses — obtidos pelo Inspecionar):
5- [campo_1] ([seletor_1])
6- [campo_2] ([seletor_2])
7- [campo_3] ([seletor_3])
8- [campo_4] ([seletor_4, atributo se necessário])
9Saída: salvar em items.csv com codificação UTF-8 e uma linha de cabeçalho.
10Requisitos:
11- Use requests com um User-Agent realista
12- Trate campos ausentes com elegância (None, sem quebrar)
13- Mostre no final a quantidade de itens extraídos
14- Adicione um atraso de 1 segundo entre as requisições se houver loop
15Aqui está um trecho representativo do HTML da página (um card de item):
16[COLE AQUI 20-40 LINHAS DO HTML REAL]
Saída esperada: um arquivo CSV com uma linha por item, e colunas correspondendo aos nomes dos campos.
Modelo 2: Scraper de página de detalhe/subpágina (produto ou perfil individual)
Quando usar: você tem uma página única com muitos detalhes (uma página de produto, perfil de pessoa, anúncio de imóvel) e quer extrair tudo em um único registro estruturado.
1Escreva uma função Python `scrape_detail(url)` que receba a URL de uma página de detalhe e retorne um dict com estas chaves:
2- [campo_1]
3- [campo_2]
4- [campo_3]
5- [campo_4]
6- [campo_5]
7Use BeautifulSoup. Trate qualquer campo ausente com elegância (retorne None).
8Inclua fallbacks com regex para e-mail e telefone — nem toda página os envolve em tags consistentes.
9Retorne o dict e também acrescente-o como uma linha em details.csv (crie o arquivo com cabeçalho na primeira chamada).
10Trecho de HTML de referência de uma página de detalhe real:
11[COLE AQUI 40-60 LINHAS DO HTML DE UMA PÁGINA DE DETALHE]
Saída esperada: um dict por página e um CSV crescendo com uma linha para cada página de detalhe.
Modelo 3: Scraper para página dinâmica/JS-renderizada (Playwright)
Quando usar: a página carrega conteúdo via JavaScript (React, Angular etc.) — você vê um <div id="root"> vazio no HTML bruto.
1Escreva um web scraper em Python usando Playwright (API síncrona) para uma página renderizada por JavaScript.
2URL alvo: [SUA URL]
3Objetivo: extrair todos os cards de resultados que aparecem depois que a página termina de carregar dinamicamente.
4Requisitos:
5- Use `page.wait_for_selector('[SEU SELETOR DE CARD]', timeout=15000)` para aguardar o conteúdo
6- Role até o fim da página duas vezes, com uma pausa de 1 segundo entre as rolagens, para acionar resultados carregados sob demanda
7- Para cada card, extraia: [campo_1], [campo_2], [campo_3], [campo_4]
8- Salve em results.json como uma lista de dicts, em UTF-8
9- Rode com headless=False primeiro (para eu poder observar) e adicione uma pausa de 2 segundos no final antes de fechar
10Não use requests nem BeautifulSoup — apenas Playwright.
Saída esperada: um arquivo JSON com um objeto por card de resultado, com todos os campos preenchidos.
Modelo 4: Tratamento de paginação (scraping de várias páginas)
Quando usar: você já tem um scraper de uma única página funcionando e precisa percorrer todas as páginas.
1Pegue o scraper existente em BeautifulSoup abaixo e envolva-o em um loop de paginação que colete TODAS as páginas, não apenas a página 1.
2O site usa paginação por parâmetro de URL: ?page=1, ?page=2 etc.
3Condição de parada: quando a página atual retornar zero itens, OU quando o status da resposta não for 200, OU quando chegar à página 100 (limite de segurança).
4Adicione:
5- Um atraso educado de 1,5 segundo entre as requisições de página
6- Um try/except em cada requisição que registre o erro e continue
7- Um print de progresso a cada 5 páginas: "Página 15 → 300 itens até agora"
8- Salvamento final em items_all.csv
9Scraper existente:
10[COLE AQUI SEU SCRAPER ATUAL DE UMA ÚNICA PÁGINA]
Saída esperada: um único CSV com todos os itens de todas as páginas, além de mensagens no console mostrando o progresso.
Modelo 5: Limpeza e estruturação de dados (abordagem “cole o HTML”)
Quando usar: você já tem o HTML bruto (do curl, do navegador ou de um arquivo) e só quer que o ChatGPT o transforme em dados estruturados e limpos — sem precisar escrever código.
1Vou colar o HTML bruto de uma página de detalhe de produto. Você não precisa escrever código — apenas devolva os dados extraídos como um objeto JSON que siga este esquema:
2{
3 "name": string,
4 "brand": string,
5 "price": number,
6 "currency": string (ISO 4217),
7 "availability": "in_stock" | "out_of_stock" | "preorder" | "unknown",
8 "rating": number (0-5) or null,
9 "review_count": integer or null,
10 "description": string (max 500 chars),
11 "key_specs": [{"name": string, "value": string}]
12}
13Use null para tudo o que você realmente não conseguir encontrar — NÃO invente nada.
14Retorne SOMENTE o objeto JSON, sem texto explicativo e sem bloco de código.
15HTML:
16[COLE AQUI O HTML COMPLETO DA PÁGINA]
Saída esperada: um único objeto JSON, pronto para entrar numa planilha ou banco de dados.
Onde o Web Scraping com ChatGPT quebra (limitações reais)
A maioria dos tutoriais simplesmente ignora esta parte. Já passei tempo suficiente depurando scrapers gerados pelo ChatGPT para saber exatamente onde eles falham — e o confirma que apenas dos desenvolvedores “confiam muito” na saída da IA. Eis o motivo.
Sites pesados em JavaScript e conteúdo dinâmico
Mais de dos sites usam JavaScript para funcionalidades no lado do cliente. Só o React já roda em 7,2% de todos os sites — um aumento de cerca de em apenas um ano. Quando você pede ao ChatGPT para “raspar esta página”, a saída padrão é um script com requests + BeautifulSoup. Esse script busca o HTML bruto — e, em um site React ou Angular, o HTML bruto costuma ser apenas um <div id="root"> vazio. Os dados reais carregam depois que o JavaScript executa, algo que o requests nunca faz.
O ChatGPT pode gerar código com Selenium ou Playwright se você pedir, mas esses scripts são mais lentos (o Playwright leva em média , contra menos de um segundo em requests estáticos) e frequentemente precisam de ajustes em condições de espera, gatilhos de rolagem e seletores de elementos que o ChatGPT acaba chutando errado.
Proteções anti-bot e CAPTCHAs
A Cloudflare protege cerca de , e serviços como o DataDome afirmam ter na detecção de bots. Um simples requests.get() com user-agent de Python é, sem rodeios, uma assinatura clássica de bot. Scripts gerados pelo ChatGPT não incluem rotação de proxy, falsificação de fingerprint TLS, tratamento de cookies nem resolução de CAPTCHA. Em qualquer site comercial com proteção básica, o script é bloqueado logo na primeira requisição.
Paginação e scraping em grande escala
O loop de paginação padrão do ChatGPT percorre ?page=N ou clica em um botão .next. Sites reais usam paginação por cursor, infinite scroll com IntersectionObserver ou chamadas GraphQL. O ChatGPT não consegue gerar o código correto para esses casos sem que você mostre a chamada exata da rede — e, mesmo assim, os loops ficam frágeis. O e o destacam a paginação como o ponto em que seus scrapers de exemplo mais precisam de um segundo ou terceiro prompt.
Scraping contínuo e agendado
O ChatGPT entrega um script de uso único. Não há agendador, detecção de mudanças nem alertas. Se você quer “verificar preços da concorrência toda manhã”, precisa aprender cron, Airflow ou Lambda — nada disso vem coberto na resposta inicial do ChatGPT. Para usuários de negócio que precisam de dados recorrentes, isso é um beco sem saída.
O problema de velocidade e custo
Em sites pesados em JS, os tempos reais por página com Selenium ou Playwright ficam entre 3 e 10 segundos por página em condições ideais e entre 40 e 60 segundos por página com retries e esperas anti-bot — uma frustração em fóruns e tutoriais.
Se você usar a API do ChatGPT para analisar HTML (a abordagem de “colar HTML” em escala), os custos de tokens crescem rápido. No preço atual do GPT-4o (~US$ 2,50/M tokens de entrada, US$ 10/M de saída), analisar 1.000 páginas de produtos custa algo em torno de US$ 95–105 só em tokens. Com o GPT-4o mini, o custo cai para cerca de US$ 6,50 para o mesmo volume. Some custos de proxy (US$ 3–10/GB), manutenção do crawler local e tempo de desenvolvimento, e a abordagem “é só usar o ChatGPT” começa a ficar cara.
| Escala | Custo estimado em tokens com GPT-4o | Custo estimado em tokens com GPT-4o Mini |
|---|---|---|
| 100 páginas | ~US$ 9,55 | ~US$ 0,65 |
| 1.000 páginas | ~US$ 95,50 | ~US$ 6,50 |
| 10.000 páginas | ~US$ 955 | ~US$ 65 |
As estimativas consideram cerca de 50 mil tokens de entrada e 2 mil tokens de saída por página. Os custos reais variam conforme o tamanho da página e a complexidade da saída.
Web Scraping com ChatGPT vs. scrapers de IA sem código vs. código personalizado: framework de decisão
Nem toda tarefa de scraping precisa da mesma ferramenta. Este é o framework de decisão que venho usando no Thunderbit depois de testar as três abordagens em projetos reais.
| Cenário | ChatGPT + Python | Scraper de IA sem código (ex.: Thunderbit) | Código personalizado + proxies |
|---|---|---|---|
| Páginas estáticas simples | ✅ Excelente — gera rápido | ✅ Funciona, pode ser exagero | ⚠️ Complexidade desnecessária |
| Conteúdo renderizado por JS / dinâmico | ⚠️ Precisa de Selenium/Playwright — o código costuma quebrar | ✅ Resolve via navegador/scraping em nuvem | ✅ Controle total |
| Sites com anti-bot / CAPTCHA | ❌ O ChatGPT não resolve CAPTCHA | ✅ Infraestrutura em nuvem lida com muitos casos | ✅ Com rotação de proxies |
| Paginação (100+ páginas) | ⚠️ Loops frágeis, precisa depuração | ✅ Suporte nativo à paginação | ✅ Robusto com engenharia |
| Usuário sem perfil técnico | ❌ Exige conhecimento de Python | ✅ 2 cliques, sem código | ❌ Exige programação |
| Scraping recorrente/agendado | ❌ Execução manual sempre | ✅ Recurso de scraper agendado | ✅ Com cron/orquestração |
| Exportar para Sheets/Airtable/Notion | ⚠️ Requer código extra | ✅ Exportação nativa com um clique | ⚠️ Código adicional de integração |
Em resumo: use o ChatGPT para scripts rápidos e pontuais, e para aprender. Use uma ferramenta sem código como o Thunderbit para scraping recorrente, em produção ou para usuários sem programação. Use código personalizado + proxies para projetos de engenharia em escala empresarial, onde você precisa de controle total.
A alternativa sem código: como o Thunderbit lida com tarefas de web scraping sem programação
Para quem não programa — ou já perdeu muitas noites depurando scripts do ChatGPT — existe outro caminho. O ChatGPT gera o código. O pula essa etapa.
Eu trabalho na equipe do Thunderbit, então vou deixar isso claro. Mas também acredito de verdade que esse é o caminho mais rápido para a maioria dos usuários de negócio. Veja como funciona.
AI Suggest Fields: detecte automaticamente a estrutura dos dados em qualquer página
Abra qualquer página da web, clique na e selecione “AI Suggest Fields”. A IA do Thunderbit lê a página renderizada — inclusive conteúdo carregado por JS — e sugere nomes de colunas e tipos de dados. Sem Inspecionar, sem seletores CSS, sem engenharia de prompt. Depois é só clicar em “Scrape”.
Compare isso com a abordagem do ChatGPT: abrir DevTools, encontrar seletores, escrever o prompt, revisar o código, instalar dependências, rodar o script, conferir a saída, iterar. O Thunderbit reduz tudo isso a dois cliques.
Scraping de subpáginas para enriquecer listagens automaticamente
Depois de raspar uma página de listagem, clique em “Scrape Subpages”. O Thunderbit visita a página de detalhe de cada linha e acrescenta campos extras — como e-mail, telefone ou biografia — à sua tabela existente. Com o ChatGPT, você precisaria de um segundo script, um loop, tratamento de erros em cada subpágina e uma forma de mesclar os dados. O Thunderbit faz isso em uma única etapa.
Exportação para qualquer lugar: Google Sheets, Airtable, Notion, Excel
O Thunderbit oferece exportação gratuita com um clique para Google Sheets, Airtable, Notion e Excel — não apenas CSV. Um script gerado pelo ChatGPT normalmente escreve em um arquivo CSV ou JSON local. Levar os dados para Sheets ou Airtable exige bibliotecas extras e código de autenticação.
Scraping em nuvem vs. scraping no navegador
O Thunderbit oferece dois modos. O scraping em nuvem roda nos servidores do Thunderbit, processa cerca de 50 páginas por lote e é rápido para sites públicos. O scraping no navegador usa sua sessão conectada para páginas com login ou acesso restrito. Com o ChatGPT, você teria que configurar proxies, cookies e o gerenciamento de sessão no código — cada um deles um novo projeto de depuração.
Nos bastidores, o Thunderbit usa vários modelos de IA (incluindo ChatGPT, Gemini, Claude e outros) para ler visualmente as páginas e identificar o que extrair. Então, de certa forma, o Thunderbit já usa ChatGPT — além de outros três modelos de ponta — e ainda cuida para você da busca, renderização, anti-bot, paginação e exportação.
Casos de uso reais: vendas, ecommerce e mercado imobiliário
A maioria dos tutoriais de scraping com ChatGPT usa “Books to Scrape” ou algum outro site de teste. Aqui está como é o scraping em negócios reais — com a abordagem ChatGPT e o atalho do Thunderbit.
Extração de leads de vendas em diretórios de empresas
Cenário: você precisa de nomes, e-mails e telefones de um diretório de empresas para prospecção ativa.
Abordagem com ChatGPT: use o Modelo 1 (página de listagem) para raspar o diretório, depois o Modelo 2 (página de detalhe) para visitar cada perfil e buscar os dados de contato. Você vai precisar de fallbacks com regex para e-mails e telefones, um atraso educado entre requisições e uma etapa de remoção de duplicados. Espere de 30 a 60 minutos de configuração e depuração.
Abordagem com Thunderbit: abra o diretório, clique em “AI Suggest Fields”, raspe a listagem e depois clique em “Scrape Subpages” para puxar os detalhes de contato de cada perfil. Exporte para uma planilha pronta para o CRM. Tempo total: cerca de 3 minutos. Os integrados do Thunderbit cuidam da análise automaticamente.
Monitoramento de preços da concorrência em ecommerce
Cenário: você quer acompanhar semanalmente preços, disponibilidade e SKUs de produtos da concorrência.
Abordagem com ChatGPT: gere um scraper com o Modelo 1, adicione paginação com o Modelo 4 e rode manualmente toda semana. Se o concorrente mudar o layout da página, os seletores quebram e você precisa recomeçar.
Abordagem com Thunderbit: configure o scraper uma vez, use o scraping agendado em nuvem do Thunderbit para rodar diariamente ou semanalmente e exporte para o Google Sheets. A IA relê a estrutura da página em cada execução, então mudanças de layout não quebram o processo. Para saber mais sobre esse fluxo, veja nosso .
Coleta de dados de imóveis
Cenário: você precisa de preços, endereços, quartos/banheiros e dados do corretor em um site de anúncios imobiliários.
Abordagem com ChatGPT: a maioria dos sites imobiliários (estilo Zillow) são SPAs em React com proteção anti-bot agressiva. Um script requests + BeautifulSoup retorna uma página vazia. Uma versão com Playwright começa a ser limitada por taxa em poucos minutos.
Abordagem com Thunderbit: o scraping em nuvem com detecção de campos por IA lida com a renderização em JS e se adapta a mudanças de layout. Portais imobiliários mudam com frequência — a IA do Thunderbit lê a página de novo a cada execução, então você não precisa atualizar seletores. Veja nosso para um passo a passo.
Além de scrapes pontuais: pipelines com a API do ChatGPT vs. Thunderbit Extract API
Se você está incorporando scraping em um produto ou pipeline, a pergunta muda: usar a API do ChatGPT para analisar HTML ou uma API criada especificamente para scraping?
Usando a API do ChatGPT para analisar HTML
A abordagem é esta: usar um crawler local (requests, Playwright) para buscar o HTML e depois enviá-lo para a API da OpenAI para extrair JSON estruturado. É a forma de escalar o método “colar HTML”.
Funciona. Mas os custos e a manutenção são reais. No preço do GPT-4o, 1.000 páginas custam cerca de US$ 95 em tokens. Você precisa gerenciar o crawler, os proxies, a engenharia de prompt e o esquema de saída. Quando o site muda, o prompt quebra e você precisa ajustar tudo de novo.
Thunderbit Extract API: criada para dados web estruturados
A do Thunderbit oferece um modelo diferente. Você define um JSON Schema, faz um POST com uma URL e recebe os dados estruturados de volta. A renderização de JS e o tratamento anti-bot já vêm embutidos. O processamento em lote suporta até 100 URLs por requisição.
| Recurso | API do ChatGPT + código personalizado | Thunderbit Extract API |
|---|---|---|
| Saída estruturada | Esquema manual no prompt | Definido por JSON Schema |
| Renderização de JS | Você implementa (Playwright etc.) | Embutida (vários modos de renderização) |
| Anti-bot / CAPTCHA | Você implementa (proxies etc.) | Tratado automaticamente |
| Processamento em lote | Você cria o loop | Endpoint em lote (até 100 URLs) |
| Manutenção | Prompt quebra, código envelhece | Motor de IA gerenciado |
Para equipes que querem dados web estruturados como serviço, sem manter uma pipeline de scraping, a API do Thunderbit é o caminho mais curto para produção. Veja os para o custo em créditos por extração.
Dicas para obter melhores resultados com web scraping no ChatGPT
Algumas coisas que aprendi da forma mais difícil.
Seja específico nos prompts. Sempre inclua: linguagem de programação, biblioteca, URL-alvo, seletores CSS, formato de saída e instruções para casos extremos. Prompts vagos geram código vago.
Cole trechos de HTML, não apenas URLs. O ChatGPT não visita URLs. O trecho de HTML é a única fonte confiável que ele tem sobre a estrutura da página. Colar até 20 a 40 linhas de um único card de dados melhora muito a precisão.
Peça para o ChatGPT revisar e otimizar. Depois de gerar um script, pergunte: “Revise este código em busca de erros, adicione tratamento de falhas e otimize para desempenho.” Ele costuma identificar os próprios erros muito bem em uma segunda passada.
Sempre teste em pequena escala primeiro. Rode o script em 1 a 2 páginas antes de escalar. Descobrir um seletor quebrado na página 1 evita que você só perceba isso depois de 500 requisições falhas.
Itere, não recomece do zero. Se o primeiro script acertou 80%, cole a saída de volta e peça para o ChatGPT corrigir os 20% restantes. A conversa iterativa é onde o ChatGPT é mais forte.
Considerações éticas e legais sobre web scraping com ChatGPT
O lado jurídico importa, então aqui vai a versão resumida.
Sob a jurisprudência atual dos EUA, raspar dados publicamente disponíveis não é um crime federal de computador. A decisão estabeleceu isso, e a decisão (janeiro de 2024) reforçou o entendimento — um juiz concluiu que raspar dados públicos, sem login, do Facebook e Instagram não violava os termos de serviço da Meta, porque um visitante sem conta não é um “usuário” sujeito a esses termos.
Dito isso, raspar dados protegidos por login ou autenticação, ou violar os Termos de Serviço de um site depois de concordar com eles, ainda pode gerar risco jurídico. E, quando você está coletando dados pessoais (e-mails, telefones), leis de proteção de dados da UE e da Califórnia (GDPR, CCPA) se aplicam independentemente da origem dos dados.
Sempre verifique o robots.txt e os Termos de Serviço antes de raspar. Respeite limites de taxa. Trate dados pessoais com responsabilidade. E use ferramentas com recursos de conformidade integrados — o Thunderbit, por exemplo, respeita robots.txt e já adota práticas responsáveis por padrão. Para um aprofundamento, veja nosso .
Quando usar ChatGPT para Web Scraping — e quando escolher algo melhor
O ChatGPT é, de fato, uma ferramenta muito poderosa para web scraping — ele gera protótipos rápidos e ajuda você a entender como o scraping funciona por dentro. Para scripts pontuais e simples em páginas estáticas, é difícil bater.
Mas, para scraping em produção, recorrente ou em grande escala — especialmente se você não é desenvolvedor — uma ferramenta dedicada como o Thunderbit é mais rápida, mais confiável e não exige manutenção. E, para projetos de engenharia em escala empresarial, código personalizado com infraestrutura de proxies oferece controle total.
Meu resumo de decisão:
- Algo rápido, pontual, para aprender ou prototipar: ChatGPT + Python
- Usuários de negócio, sem código, scraping recorrente:
- Pipelines para desenvolvedores, acesso estruturado via API:
- Escala empresarial, controle total: código personalizado + proxies + orquestração
Se você quiser experimentar o caminho sem código, o Thunderbit oferece um plano gratuito para testar em pequena escala e ver os resultados por conta própria. E, se quiser ver a ferramenta em ação, nosso traz demonstrações para diferentes casos de uso.
Perguntas frequentes
O ChatGPT consegue realmente fazer scraping de sites sozinho?
Não. O ChatGPT gera código de scraping ou analisa o HTML que você fornece, mas não visita URLs, não busca páginas e não executa scripts. Mesmo o ChatGPT Atlas (o navegador embutido lançado em outubro de 2025) é um assistente de navegação conversacional — ele pode resumir uma página, mas não vai te entregar um CSV estruturado com 500 linhas.
Web scraping com ChatGPT é gratuito?
A versão gratuita do ChatGPT pode gerar código de scraping sem custo. Mas executar o código exige Python e bibliotecas (gratuitos) e, se você usar a API da OpenAI para analisar HTML em escala, vai pagar custo de tokens — algo em torno de US$ 6,50 por 1.000 páginas com GPT-4o mini, ou cerca de US$ 95 com GPT-4o. Proxies e infraestrutura são custos à parte.
Qual é a melhor biblioteca Python para scrapers gerados pelo ChatGPT?
Para páginas HTML estáticas, BeautifulSoup com a biblioteca requests é a opção mais simples e rápida. Para páginas renderizadas por JavaScript, Playwright é a escolha moderna — ele é mais rápido que o Selenium (em média cerca de 2,9 segundos por carregamento de página contra 4,8 segundos) e tem uma API mais limpa. O Selenium ainda é mais útil em projetos legados.
Posso usar o ChatGPT para extrair dados sem programar?
Não diretamente. O ChatGPT gera código que você ainda precisa executar. Se você quer uma opção realmente sem código, ferramentas como o permitem raspar em dois cliques — sem Python, sem terminal e sem depuração. Você recebe sugestões de campos com IA, exportação com um clique para Google Sheets ou Airtable, e tratamento integrado para renderização em JS e proteções anti-bot.
É legal raspar sites usando código gerado pelo ChatGPT?
Raspar dados públicos e sem login é, em geral, legal sob a jurisprudência atual dos EUA (hiQ v. LinkedIn, Meta v. Bright Data). No entanto, raspar conteúdo protegido por login, violar os Termos de Serviço de um site ou tratar mal dados pessoais (e-mails, telefones) pode gerar risco jurídico sob direito contratual ou normas de privacidade como GDPR e CCPA. Sempre verifique o robots.txt e os Termos de Serviço do site antes de raspar.
Saiba mais