Web scraping con GPT-4o: potente, pero muy costoso
(blancas.io)- Un artículo que resume la experiencia de desarrollar un scraper web asistido por IA usando la nueva función de salidas estructuradas de OpenAI
Pedirle a GPT-4o que extraiga datos
- El primer experimento consistió en pedirle a GPT-4o que extrajera datos de una cadena HTML
- Se configuró una salida estructurada usando un modelo de Pydantic
from typing import List, Dict class ParsedColumn(BaseModel): name: str values: List[str] class ParsedTable(BaseModel): name: str columns: List[ParsedColumn] - El prompt del sistema era el siguiente:
Eres un experto en web scraping. Debes recibir el contenido de una tabla HTML y extraer datos estructurados
Analizar tablas complejas
- Después de probar con tablas simples, se evaluaron tablas complejas como el pronóstico del clima de 10 días de Weather.com
- GPT-4o analizó los datos correctamente al agregar la columna
Day/Night - Como la columna
Conditionno era visible en el sitio web, al principio pareció una alucinación, pero al inspeccionar el código fuente se confirmó que sí existía como etiqueta
Las filas combinadas rompen el modelo
- Se probó una tabla simple de Wikipedia (Human Development Index), pero el modelo falló debido a las filas combinadas
- Se intentó modificar el prompt del sistema, pero no tuvo efecto
Pedirle a GPT-4o que devuelva XPath
- Para reducir el costo de las llamadas a la API de OpenAI, se le pidió que devolviera XPath en lugar de los datos analizados
- Sin embargo, muchas veces el modelo devolvía XPath incorrectos o no devolvía datos
Combinar ambos enfoques
- Se intentó un enfoque en el que, después de extraer los datos, se pedía XPath tomando esos resultados como referencia
- Este método dio mejores resultados, pero apareció el problema de que las imágenes se convertían en texto
GPT-4o es muy caro
- Hacer scraping con GPT-4o sale muy caro
- Se redujo el costo agregando una lógica de limpieza para eliminar datos innecesarios de la cadena HTML
Conclusión y demo
- La calidad de extracción de datos de GPT-4o fue sorprendente, pero el problema del costo resultó decepcionante
- Se ofrece una demo simple usando Streamlit
- Aún hay mucho por mejorar mediante más experimentos
Resumen de GN⁺
- Este artículo explora las posibilidades y limitaciones del web scraping con IA
- Muestra que es posible extraer con precisión datos de tablas complejas aprovechando la función de salidas estructuradas de GPT-4o
- Aunque existen problemas de costo y algunas limitaciones técnicas, se puede confirmar el potencial de las herramientas de web scraping asistidas por IA
- Otros proyectos con funciones similares incluyen BeautifulSoup y Scrapy
1 comentarios
Opiniones en Hacker News
Fue exitoso convertir el HTML a un formato simple (por ejemplo, Markdown) antes de pasarlo al LLM
Para contenido estructurado (por ejemplo, listas de elementos, tablas simples) no se necesita un LLM
Sorprende que el autor del post completara el 99% del trabajo y no descargara ni probara ollama para ese 1% restante
Usa un método que toma una captura de pantalla de la página, recorta la parte necesaria y se la pasa a GPT
OpenAI anunció recientemente la Batch API
Dar ejemplos de HTML y pedir un snippet de código con beautifulsoup ha funcionado bien
Se pregunta si existe un "html reducer"
En vez de scrapear directamente con GPT-4o, se puede hacer que GPT-4o escriba un script simple de web scraping
En Kadoa están trabajando en tareas de web scraping automatizado con IA
Está construyendo una base de datos de música clásica
BeautifulSoup(html).textpara reducir la cantidad de tokensfrom_htmlde Pandas es útil, pero no todas las tablas usan la etiqueta<table>