Web scraping com GPT-4o: poderoso, mas muito caro
(blancas.io)- Um texto que resume a experiência de desenvolver um scraper web com suporte de IA usando o novo recurso de saídas estruturadas da OpenAI
Pedindo ao GPT-4o para fazer scraping de dados
- O primeiro experimento foi pedir ao GPT-4o para extrair dados de uma string HTML
- Foi configurada uma saída estruturada usando modelos Pydantic
from typing import List, Dict class ParsedColumn(BaseModel): name: str values: List[str] class ParsedTable(BaseModel): name: str columns: List[ParsedColumn] - O prompt de sistema era o seguinte:
Você é um especialista em web scraping. Deve receber o conteúdo de uma tabela HTML e extrair dados estruturados
Fazendo parsing de tabelas complexas
- Depois de testar tabelas simples, foram testadas tabelas complexas como a previsão do tempo de 10 dias do Weather.com
- O GPT-4o fez o parsing dos dados corretamente ao adicionar a coluna
Day/Night - A coluna
Conditionnão aparecia no site e pareceu uma alucinação, mas ao inspecionar o código-fonte, viu-se que era uma tag realmente existente
Linhas mescladas quebram o modelo
- Foi testada uma tabela simples da Wikipedia (Human Development Index), mas o modelo falhou por causa de linhas mescladas
- O prompt de sistema foi ajustado, mas isso não teve efeito
Pedindo ao GPT-4o para retornar XPath
- Para reduzir o custo das chamadas à API da OpenAI, foi pedido que retornasse XPath em vez de dados já parseados
- Porém, muitas vezes o modelo retornava XPath incorretos ou não retornava os dados
Combinando as duas abordagens
- Foi tentada uma abordagem em que, após extrair os dados, pedia-se o XPath com base neles
- Esse método trouxe resultados melhores, mas surgiu o problema de imagens sendo convertidas em texto
GPT-4o é muito caro
- Fazer scraping com GPT-4o sai caro
- Foi adicionada uma lógica de limpeza para remover dados desnecessários da string HTML e reduzir o custo
Conclusão e demo
- A qualidade da extração de dados do GPT-4o impressionou, mas o custo decepcionou
- Foi disponibilizada uma demo simples usando Streamlit
- Ainda há muito espaço para melhorias com mais experimentos
Resumo do GN⁺
- Este texto explora as possibilidades e os limites do web scraping com IA
- Mostra que é possível extrair com precisão dados de tabelas complexas usando o recurso de saídas estruturadas do GPT-4o
- Embora existam problemas de custo e algumas limitações técnicas, fica claro o potencial de ferramentas de web scraping com suporte de IA
- Outros projetos com funcionalidades parecidas incluem BeautifulSoup e Scrapy
1 comentários
Comentários do Hacker News
Foi bem-sucedido converter HTML para um formato simples, como markdown, e depois enviar isso para o LLM
Para conteúdo estruturado, como listas de itens e tabelas simples, não é necessário usar LLM
Surpreende que o autor tenha concluído 99% do trabalho e não tenha baixado e testado o ollama para o 1% restante
Usa um método de tirar uma captura de tela da página, recortar a parte necessária e enviar ao GPT
A OpenAI anunciou recentemente a Batch API
Funcionou bem fornecer um exemplo de HTML e pedir um snippet de código em beautifulsoup
Há curiosidade sobre a existência de um "html reducer"
Em vez de fazer scraping diretamente com GPT-4o, ele pode escrever um script simples de web scraping
Na Kadoa, estão trabalhando em tarefas de scraping automatizado com IA
Está construindo um banco de dados de música clássica
BeautifulSoup(html).textpara diminuir a quantidade de tokensfrom_htmldo Pandas é útil, mas nem todas as tabelas usam a tag<table>