Potencia tus aplicaciones de IA con datos limpios de cualquier sitio web. Con capacidades avanzadas de raspado, rastreo y extracción de datos.
Este repositorio está en desarrollo y todavía estamos integrando módulos personalizados en el repositorio mono. Aún no está completamente listo para la implementación autohospedada, pero puedes ejecutarlo localmente.
Firecrawl es un servicio API que toma una URL, la rastrea y la convierte en rebajas limpias o datos estructurados. Rastreamos todas las subpáginas accesibles y le brindamos datos limpios para cada una. No se requiere mapa del sitio. Consulte nuestra documentación.
Pst. Oye, únete a nuestros observadores de estrellas :)
Proporcionamos una API fácil de usar con nuestra versión alojada. Puedes encontrar el parque infantil y la documentación aquí. También puedes alojar tú mismo el backend si lo deseas.
Consulte los siguientes recursos para comenzar:
API : Documentación
SDK : Python, Node, Go, Rust
Marcos LLM : Langchain (python), Langchain (js), Llama Index, Crew.ai, Composio, PraisonAI, Superinterface, Vectorize
Marcos de código bajo : Dify, Langflow, Flowise AI, Cargo, Pipedream
Otros : Zapier, Pabbly Connect
¿Quieres un SDK o una integración? Háganos saber abriendo una edición.
Para ejecutar localmente, consulte la guía aquí.
Para utilizar la API, debe registrarse en Firecrawl y obtener una clave API.
Scrape : extrae una URL y obtiene su contenido en formato listo para LLM (rebaja, datos estructurados a través de LLM Extract, captura de pantalla, html)
Rastreo : extrae todas las URL de una página web y devuelve contenido en formato listo para LLM
Mapa : ingrese un sitio web y obtenga todas las URL del sitio web, extremadamente rápido
Formatos listos para LLM : rebajas, datos estructurados, captura de pantalla, HTML, enlaces, metadatos
Lo difícil : proxies, mecanismos anti-bot, contenido dinámico (renderizado en js), análisis de salida, orquestación
Personalización : excluir etiquetas, rastrear detrás de muros de autenticación con encabezados personalizados, profundidad máxima de rastreo, etc.
Análisis de medios : pdf, docx, imágenes.
La confiabilidad es lo primero : diseñado para obtener los datos que necesita, sin importar lo difícil que sea.
Acciones : hacer clic, desplazarse, ingresar, esperar y más antes de extraer datos
Procesamiento por lotes (nuevo) : extraiga miles de URL al mismo tiempo con un nuevo punto final asíncrono
Puede encontrar todas las capacidades de Firecrawl y cómo usarlas en nuestra documentación.
Se utiliza para rastrear una URL y todas las subpáginas accesibles. Esto envía un trabajo de rastreo y devuelve un ID de trabajo para verificar el estado del rastreo.
rizo -X PUBLICACIÓN https://api.firecrawl.dev/v1/crawl -H 'Tipo de contenido: aplicación/json' -H 'Autorización: Portador fc-YOUR_API_KEY' -d '{ "url": "https://docs.firecrawl.dev", "límite": 100, "scrapeOptions": { "formatos": ["markdown", "html"] } }'
Devuelve una identificación del trabajo de rastreo y la URL para verificar el estado del rastreo.
{ "éxito": verdadero, "id": "123-456-789", "url": "https://api.firecrawl.dev/v1/crawl/123-456-789"}
Se utiliza para comprobar el estado de un trabajo de rastreo y obtener su resultado.
curl -X OBTENER https://api.firecrawl.dev/v1/crawl/123-456-789 -H 'Tipo de contenido: aplicación/json' -H 'Autorización: Portador YOUR_API_KEY'
{ "status": "completado", "total": 36, "creditsUsed": 36, "expiresAt": "2024-00-00T00:00:00.000Z", "data": [ { "markdown": "[¡Página de inicio de Firecrawl Docs![logotipo claro](https://mintlify.s3-us-west-1.amazonaws.com/firecrawl/logo/light.svg)!...", " html": ".. .", "metadata": {"title": "Crea un 'Chat con sitio web' usando Groq Llama 3 | Firecrawl","language": "en","sourceURL": "https://docs.firecrawl.dev /learn/rag-llama3","description": "Aprenda a usar Firecrawl, Groq Llama 3 y Langchain para crear un bot para 'Chatear con su sitio web'.","ogLocaleAlternate": [],"statusCode": 200 } } ] }
Se utiliza para extraer una URL y obtener su contenido en los formatos especificados.
curl -X PUBLICACIÓN https://api.firecrawl.dev/v1/scrape -H 'Tipo de contenido: aplicación/json' -H 'Autorización: Portador YOUR_API_KEY' -d '{ "url": "https://docs.firecrawl.dev", "formatos": ["markdown", "html"] }'
Respuesta:
{ "success": true, "data": {"markdown": "¡La semana de lanzamiento I ya está aquí! [Vea nuestro lanzamiento del día 2](https://www.firecrawl.dev/blog/launch-week-i-day -2-límites-de-tasa-duplicada)[? Obtenga 2 meses gratis...","html": "Mapa (Alfa)
Se utiliza para asignar una URL y obtener las URL del sitio web. Esto devuelve la mayoría de los enlaces presentes en el sitio web.
curl -X PUBLICACIÓN https://api.firecrawl.dev/v1/map -H 'Tipo de contenido: aplicación/json' -H 'Autorización: Portador YOUR_API_KEY' -d '{ "url": "https://firecrawl.dev" }'Respuesta:
{ "estado": "éxito", "enlaces": ["https://firecrawl.dev","https://www.firecrawl.dev/pricing","https://www.firecrawl.dev/blog ","https://www.firecrawl.dev/playground","https://www.firecrawl.dev/smart-crawl", ] }Mapa con búsqueda
El mapa con parámetro
search
le permite buscar URL específicas dentro de un sitio web.curl -X PUBLICACIÓN https://api.firecrawl.dev/v1/map -H 'Tipo de contenido: aplicación/json' -H 'Autorización: Portador YOUR_API_KEY' -d '{ "url": "https://firecrawl.dev", "búsqueda": "docs" }'La respuesta será una lista ordenada de la más relevante a la menos relevante.
{ "estado": "éxito", "enlaces": ["https://docs.firecrawl.dev","https://docs.firecrawl.dev/sdks/python","https://docs.firecrawl .dev/learn/rag-llama3", ] }Extracción de LLM (Beta)
Se utiliza para extraer datos estructurados de páginas raspadas.
curl -X PUBLICACIÓN https://api.firecrawl.dev/v1/scrape -H 'Tipo de contenido: aplicación/json' -H 'Autorización: Portador YOUR_API_KEY' -d '{ "url": "https://www.mendable.ai/", "formatos": ["extraer"], "extraer": { "esquema": { "tipo": "objeto", " properties": { "company_mission": { "type": "string" }, "supports_sso": { "type": "boolean" }, "is_open_source": { "type": "boolean" }, "is_in_yc": { "tipo": "booleano" } }, "requerido": [ "company_mission", "supports_sso", "is_open_source", "is_in_yc" ] } } }'{ "success": true, "data": {"content": "Raw Content","metadata": { "title": "Mendable", "description": "Mendable le permite crear fácilmente aplicaciones de chat de IA. Ingerir , personalícelo y luego impleméntelo con una línea de código en cualquier lugar que desee. Presentado por SideGuide", "robots": "follow, index", "ogTitle": "Mendable", "ogDescription": "Mendable le permite construir fácilmente. Aplicaciones de chat de IA. Ingiere, personaliza y luego implementa con una línea de código en cualquier lugar que desees. Presentado por SideGuide", "ogUrl": "https://mendable.ai/", "ogImage": "https://. mendable.ai/mendable_new_og1.png", "ogLocaleAlternate": [], "ogSiteName": "Mendable", "sourceURL": "https://mendable.ai/"},"llm_extraction": { "company_mission": " Entrene una IA segura en sus recursos técnicos que responda las preguntas de clientes y empleados para que su equipo no tenga que hacerlo", "supports_sso": true, "is_open_source": false, "is_in_yc": true} } }Extraer sin esquema (Nuevo)
Ahora puede extraer sin un esquema simplemente pasando un
prompt
al punto final. La película elige la estructura de los datos.curl -X PUBLICACIÓN https://api.firecrawl.dev/v1/scrape -H 'Tipo de contenido: aplicación/json' -H 'Autorización: Portador YOUR_API_KEY' -d '{ "url": "https://docs.firecrawl.dev/", "formats": ["extract"], "extract": { "prompt": "Extraiga la misión de la empresa de la página". } }'Interactuar con la página con Acciones (solo en la nube)
Firecrawl le permite realizar varias acciones en una página web antes de eliminar su contenido. Esto es particularmente útil para interactuar con contenido dinámico, navegar por páginas o acceder a contenido que requiere la interacción del usuario.
A continuación se muestra un ejemplo de cómo utilizar acciones para navegar a google.com, buscar Firecrawl, hacer clic en el primer resultado y tomar una captura de pantalla.
curl -X PUBLICACIÓN https://api.firecrawl.dev/v1/scrape -H 'Tipo de contenido: aplicación/json' -H 'Autorización: Portador YOUR_API_KEY' -d '{ "url": "google.com", "formatos": ["markdown"], "acciones": [ {"tipo": "espera", "milisegundos": 2000}, {"tipo": "hacer clic", "selector": "textarea[title="Buscar"]"}, {"tipo": "esperar", "milisegundos": 2000}, {"tipo": "escribir", "texto": " firecrawl"}, {"tipo": "esperar", "milisegundos": 2000}, {"tipo": "presionar", "tecla": "ENTER"}, {"tipo": "esperar", "milisegundos" : 3000}, {"tipo": "clic", "selector": "h3"}, {"tipo": "espera", "milisegundos": 3000}, {"tipo": "captura de pantalla"} ] }'Raspado por lotes de varias URL (nuevo)
Ahora puede extraer por lotes varias URL al mismo tiempo. Es muy similar a cómo funciona el punto final /crawl. Envía un trabajo de raspado por lotes y devuelve un ID de trabajo para verificar el estado del raspado por lotes.
rizo -X PUBLICACIÓN https://api.firecrawl.dev/v1/batch/scrape -H 'Tipo de contenido: aplicación/json' -H 'Autorización: Portador YOUR_API_KEY' -d '{ "urls": ["https://docs.firecrawl.dev", "https://docs.firecrawl.dev/sdks/overview"], "formatos": ["markdown", "html" ] }'Buscar (v0) (Beta)
Se utiliza para buscar en la web, obtener los resultados más relevantes, extraer cada página y devolver la rebaja.
curl -X PUBLICACIÓN https://api.firecrawl.dev/v0/search -H 'Tipo de contenido: aplicación/json' -H 'Autorización: Portador YOUR_API_KEY' -d '{ "query": "firecrawl", "pageOptions": { "fetchPageContent": true // false para una API de búsqueda rápida } }'{ "éxito": verdadero, "datos": [ { "url": "https://mendable.ai", "markdown": "# Contenido Markdown", "provider": "web-scraper", "metadata": {"title": "Mendable | AI para CX y ventas","description": "IA para CX y ventas","language": null,"sourceURL": "https://www.mendable.ai/" } } ] }Usando el SDK de Python
Instalación del SDK de Python
instalación de pip firecrawl-pyRastrear un sitio web
from firecrawl.firecrawl import FirecrawlAppapp = FirecrawlApp(api_key="fc-YOUR_API_KEY")# Raspe un sitio web:scrape_status = app.scrape_url( 'https://firecrawl.dev', params={'formatos': ['rebaja', 'html']} )print(scrape_status)# Rastrear un sitio web:crawl_status = app.crawl_url( 'https://firecrawl.dev', params={'límite': 100, 'scrapeOptions': {'formatos': ['markdown', 'html']} }, poll_interval=30)print(crawl_status)Extraer datos estructurados de una URL
Con la extracción LLM, puedes extraer fácilmente datos estructurados de cualquier URL. Admitimos esquemas pydantic para que a usted también le resulte más fácil. Así es como puedes usarlo:
from firecrawl.firecrawl import FirecrawlAppapp = FirecrawlApp(api_key="fc-YOUR_API_KEY")class ArticleSchema(BaseModel):title: strpoints: intby: strcommentsURL: strclass TopArticlesSchema(BaseModel):top: List[ArticleSchema] = Field(..., max_items=5, descripción="5 historias principales")data = app.scrape_url('https://news.ycombinator.com', {'formats': ['extract'],'extract': {'schema': TopArticlesSchema.model_json_schema() } })imprimir(datos["extraer"])Usando el SDK de nodo
Instalación
Para instalar el SDK de Firecrawl Node, puede utilizar npm:
instalación npm @mendable/firecrawl-jsUso
Obtenga una clave API de firecrawl.dev
Configure la clave API como una variable de entorno denominada
FIRECRAWL_API_KEY
o pásela como parámetro a la claseFirecrawlApp
.importar FirecrawlApp, { CrawlParams, CrawlStatusResponse } de '@mendable/firecrawl-js';const app = new FirecrawlApp({apiKey: "fc-YOUR_API_KEY"});// Raspe un sitio webconst scrapeResponse = await app.scrapeUrl('https: //firecrawl.dev', { formatos: ['markdown', 'html'],});if (scrapeResponse) { console.log(scrapeResponse)}// Rastrear un sitio webconst crawlResponse = await app.crawlUrl('https://firecrawl.dev', { límite: 100, scrapeOptions: {formatos: ['markdown', 'html'], }} satisface CrawlParams, verdadero, 30) satisface CrawlStatusResponse;if (crawlResponse) { console.log(crawlResponse)}Extraer datos estructurados de una URL
Con la extracción LLM, puedes extraer fácilmente datos estructurados de cualquier URL. Admitimos el esquema zod para que a usted también le resulte más fácil. Así es como puedes usarlo:
importar FirecrawlApp desde "@mendable/firecrawl-js"; importar { z } desde "zod"; const app = new FirecrawlApp({ apiKey: "fc-YOUR_API_KEY"});// Definir esquema para extraer contenidos en const esquema = z.object({ arriba: z.array( z.object({título: z.string(),puntos: z.number(),por: z.string(),comentariosURL: z.string(), })).length(5 ).describe("Las 5 historias principales sobre Hacker News"),});const scrapeResult = await app.scrapeUrl("https://news.ycombinator.com", { extractorOptions: {extractionSchema: esquema},});console.log(scrapeResult.data["llm_extraction"]);Oferta de código abierto versus oferta en la nube
Firecrawl es de código abierto disponible bajo la licencia AGPL-3.0.
Para ofrecer el mejor producto posible, ofrecemos una versión alojada de Firecrawl junto con nuestra oferta de código abierto. La solución en la nube nos permite innovar continuamente y mantener un servicio sostenible y de alta calidad para todos los usuarios.
Firecrawl Cloud está disponible en firecrawl.dev y ofrece una variedad de funciones que no están disponibles en la versión de código abierto:
Contribuyendo
¡Nos encantan las contribuciones! Lea nuestra guía de contribución antes de enviar una solicitud de extracción. Si desea autohospedarse, consulte la guía de autohospedaje.
Es responsabilidad exclusiva de los usuarios finales respetar las políticas de los sitios web al raspar, buscar y rastrear con Firecrawl. Se recomienda a los usuarios que cumplan con las políticas de privacidad aplicables y los términos de uso de los sitios web antes de iniciar cualquier actividad de scraping. De forma predeterminada, Firecrawl respeta las directivas especificadas en los archivos robots.txt de los sitios web al rastrear. Al utilizar Firecrawl, usted acepta expresamente cumplir con estas condiciones.
Colaboradores
Descargo de responsabilidad de licencia
Este proyecto tiene principalmente la licencia pública general GNU Affero v3.0 (AGPL-3.0), como se especifica en el archivo LICENCIA en el directorio raíz de este repositorio. Sin embargo, ciertos componentes de este proyecto tienen la licencia MIT. Consulte los archivos de LICENCIA en estos directorios específicos para obtener más detalles.
Tenga en cuenta:
La licencia AGPL-3.0 se aplica a todas las partes del proyecto a menos que se especifique lo contrario.
Los SDK y algunos componentes de la interfaz de usuario tienen la licencia MIT. Consulte los archivos de LICENCIA en estos directorios específicos para obtener más detalles.
Al utilizar o contribuir a este proyecto, asegúrese de cumplir con los términos de licencia adecuados para el componente específico con el que está trabajando.
Para obtener más detalles sobre la licencia de componentes específicos, consulte los archivos de LICENCIA en los directorios respectivos o comuníquese con los mantenedores del proyecto.
↑ Volver arriba ↑