SCRAPE_BY_CSS_PATH
Extrae contenido de una página web usando un selector CSS.
=SCRAPE_BY_CSS_PATH(url, selector, [attribute], [renderJs])Devuelve: string or 2D array (multiple matches returned as separate rows)
Descripción General
SCRAPE_BY_CSS_PATH extrae contenido de cualquier página web usando selectores CSS estándar, la misma sintaxis de consulta que usan los desarrolladores web para estilizar elementos HTML. Apúntalo a una URL, proporciona un selector CSS como ".price", "#title" o "h1", y devuelve el contenido de texto coincidente directamente en tu hoja de cálculo. Cuando múltiples elementos coinciden con el selector, cada resultado se devuelve como una fila separada, facilitando extraer listas completas de productos, enlaces o puntos de datos en una sola llamada.
Parámetros
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
url | string | Sí | La URL completa de la página web a extraer (debe incluir https:// o http://). |
selector | string | Sí | Selector CSS dirigido al/los elemento(s) a extraer. Soporta sintaxis CSS estándar incluyendo clases (.class), IDs (#id), elementos (h1), atributos ([data-price]), combinadores (div > p) y pseudo-selectores (li:first-child). |
attribute | string | No | Atributo HTML opcional a extraer en lugar del contenido de texto. Valores comunes: "href" (URLs de enlaces), "src" (fuentes de imagen/script), "alt" (texto alternativo de imagen), "data-*" (atributos de datos personalizados), "content" (valores de meta etiquetas). |
renderJs | boolean | No | Opcional. Establece en TRUE para renderizar JavaScript antes de extraer. Requerido para aplicaciones de página única y contenido cargado dinámicamente. Más lento y usa más créditos que el modo estándar. |
Ejemplos
Extraer el encabezado principal de una página
Devuelve el contenido de texto del primer elemento h1 en la página. Útil para verificar rápidamente títulos de página en una lista de URLs.
=SCRAPE_BY_CSS_PATH("https://example.com", "h1")Salida
Example DomainObtener todas las URLs de enlaces de navegación
Extrae el atributo href de cada etiqueta anchor dentro de un elemento nav. Devuelve múltiples filas si hay múltiples enlaces.
=SCRAPE_BY_CSS_PATH("https://example.com", "nav a", "href")Salida
| /about |
| /products |
| /blog |
| /contact |
Extraer precios de productos de una página de e-commerce
Apunta a elementos de precio anidados dentro de tarjetas de producto. Devuelve todos los precios coincidentes como filas separadas para fácil comparación.
=SCRAPE_BY_CSS_PATH("https://store.example.com/shoes", ".product-card .price")Salida
| $89.99 |
| $129.00 |
| $64.50 |
| $199.99 |
Extraer meta descripción para auditoría SEO
Usa un selector de atributo para encontrar la etiqueta meta descripción y extrae su atributo content. Esencial para auditorías SEO a escala.
=SCRAPE_BY_CSS_PATH("https://example.com", "meta[name='description']", "content")Salida
This is the meta description of the example page.Extraer listados de productos renderizados con JavaScript
Habilita el renderizado de JavaScript para extraer de una aplicación de página única. El tercer parámetro vacío omite el argumento de atributo, y TRUE activa el navegador sin interfaz.
=SCRAPE_BY_CSS_PATH("https://spa-store.example.com", ".item-title", , TRUE)Salida
| Wireless Headphones |
| USB-C Hub |
| Laptop Stand |
Casos de Uso
Monitoreo de Precios de Competidores
Configura una hoja de cálculo que extrae páginas de productos de competidores diariamente usando selectores CSS dirigidos a elementos de precio. Rastrea tendencias de precios a lo largo del tiempo y obtén alertas cuando los competidores cambien su estrategia de precios.
Auditoría de Títulos y Meta Etiquetas SEO
Audita cientos de páginas extrayendo sus etiquetas de título, meta descripciones y estructuras de encabezados usando selectores CSS. Identifica meta datos faltantes o duplicados, títulos demasiado largos y páginas sin jerarquía de encabezados adecuada.
Agregación de Ofertas de Empleo
Extrae bolsas de trabajo y páginas de carreras de empresas para agregar ofertas de empleo en una sola hoja de cálculo. Extrae títulos de trabajo, ubicaciones, rangos salariales y enlaces de aplicación usando selectores CSS dirigidos para cada punto de datos.
Seguimiento de Listados Inmobiliarios
Monitorea sitios de listados de propiedades extrayendo precios, direcciones, metros cuadrados y fechas de listado. Construye una hoja de cálculo de análisis de mercado completa que se actualiza con inventario actual y datos de precios.
Recopilación de Datos para Investigación Académica
Recopila datos estructurados de bases de datos de investigación, portales gubernamentales y sitios web institucionales. Extrae títulos de publicaciones, nombres de autores, fechas y resúmenes en hojas de cálculo organizadas para revisiones de literatura.
Prueba Social y Monitoreo de Reseñas
Rastrea reseñas y calificaciones de productos en múltiples plataformas extrayendo puntuaciones de reseñas, conteos de reseñas y calificaciones de estrellas. Agrega datos en Amazon, G2, Trustpilot y sitios de reseñas específicos de la industria.
Consejos Profesionales
Usa la función "Copiar selector" de las DevTools del navegador como punto de partida, pero simplifica el selector para hacerlo más resistente a cambios en la página. Un selector como ".product-price" es más estable que "div.container > div:nth-child(3) > span.product-price".
Combina con ARRAYFORMULA para extraer el mismo selector en múltiples URLs listadas en una columna. Por ejemplo, =ARRAYFORMULA(SCRAPE_BY_CSS_PATH(A2:A10, "h1")) extraerá el h1 de cada URL en las celdas A2 a A10.
Al extraer sitios de e-commerce, apunta a atributos de datos como [data-price] o [data-product-id] en lugar de elementos visuales, ya que los atributos de datos son más estables y contienen valores más limpios.
Prueba tu selector CSS en la consola del navegador primero usando document.querySelectorAll("tu-selector") para verificar que coincide con los elementos correctos antes de usarlo en la hoja de cálculo.
Para páginas que cargan contenido en etapas, la opción renderJs espera el evento de carga de página inicial. Si el contenido se carga después de interacciones de usuario adicionales (como hacer clic en un botón "Cargar más"), puede no ser capturado.
Por defecto, la función devuelve el contenido de texto visible de los elementos coincidentes. Opcionalmente puedes especificar un parámetro de atributo para extraer atributos HTML específicos en su lugar, como "href" para URLs de enlaces, "src" para fuentes de imágenes, o cualquier atributo de datos personalizado. Esto la hace increíblemente versátil para tareas como construir inventarios de enlaces, recopilar URLs de imágenes o extraer atributos de datos estructurados.
Para sitios web modernos que dependen en gran medida de JavaScript para renderizar su contenido (aplicaciones de página única, sitios React/Vue/Angular, catálogos de productos cargados dinámicamente), habilita el parámetro renderJs. Esto instruye al scraper a usar un navegador sin interfaz que ejecuta completamente JavaScript antes de extraer contenido, asegurando que captures datos que de otro modo serían invisibles en el código HTML fuente. Ten en cuenta que el renderizado de JavaScript es más lento y consume más créditos, así que solo habilítalo cuando el modo estándar devuelva resultados vacíos o incompletos.
SCRAPE_BY_CSS_PATH es ideal para auditorías SEO, investigación competitiva, monitoreo de precios, agregación de contenido y cualquier flujo de trabajo donde necesites extraer datos estructurados de la web a Google Sheets sin escribir código.
Errores Comunes
No matches foundCausa: El selector CSS no coincide con ningún elemento en la página. Esto a menudo sucede cuando el contenido de la página se carga vía JavaScript pero renderJs no está habilitado, o el selector tiene un error tipográfico.
Solución: Verifica que el selector funcione en la consola de DevTools del navegador con document.querySelectorAll("tu-selector"). Si los elementos existen en el navegador pero la función no devuelve nada, habilita renderJs estableciendo el cuarto parámetro en TRUE.
Error: URL and selector are requiredCausa: Uno o ambos parámetros requeridos (url y selector) están vacíos o faltan.
Solución: Asegúrate de que tanto la URL como el selector CSS estén proporcionados. La URL debe ser una dirección completa incluyendo el protocolo (https:// o http://). Verifica que las referencias de celda no apunten a celdas vacías.
Error: Failed to fetch URLCausa: El sitio web objetivo bloqueó la solicitud, la URL no es válida, el servidor está caído, o ocurrió un timeout de red.
Solución: Verifica que la URL sea accesible en tu navegador. Algunos sitios web bloquean solicitudes automatizadas; intenta una página diferente en el mismo sitio. Verifica que la URL incluya el protocolo (https://). Si el sitio requiere JavaScript, intenta habilitar renderJs.
Preguntas Frecuentes
Abre la página web objetivo en Chrome o Firefox, haz clic derecho en el elemento que quieres extraer y selecciona "Inspeccionar" o "Inspeccionar elemento". Esto abre las herramientas de desarrollador del navegador con el elemento HTML resaltado. Puedes hacer clic derecho en el elemento resaltado en el panel de Elementos y elegir "Copiar > Copiar selector" para obtener un selector CSS auto-generado. Para selectores más confiables, busca nombres de clase únicos o IDs en el elemento. Por ejemplo, si ves <div class="product-price">$29.99</div>, tu selector sería ".product-price". Evita selectores auto-generados demasiado específicos con muchos elementos anidados, ya que se rompen fácilmente cuando el diseño de la página cambia.
Por defecto, SCRAPE_BY_CSS_PATH devuelve el contenido de texto visible del elemento coincidente, que es lo que un usuario ve en la página. Cuando especificas un parámetro de atributo, extrae el valor de ese atributo HTML en su lugar. Por ejemplo, una etiqueta anchor <a href="https://example.com" class="link">Haz clic aquí</a> devolvería "Haz clic aquí" sin un atributo, pero devolvería "https://example.com" si estableces el atributo en "href". Los atributos comunes incluyen "href" para enlaces, "src" para imágenes, "alt" para descripciones de imágenes, "content" para meta etiquetas y cualquier atributo personalizado "data-*".
Habilita renderJs cuando el contenido que quieres extraer se carga dinámicamente vía JavaScript. Las señales de que lo necesitas incluyen: la función devuelve resultados vacíos o "No se encontraron coincidencias" aunque puedas ver el contenido en tu navegador; el sitio web es una aplicación de página única construida con React, Vue, Angular o frameworks similares; el contenido se carga después de desplazarse o después de un retraso; o la página muestra un spinner de carga antes de que aparezca el contenido. El modo estándar es más rápido y económico, así que intenta sin renderJs primero y solo habilítalo si es necesario.
Cada llamada a SCRAPE_BY_CSS_PATH apunta a un selector CSS, pero ese selector puede coincidir con múltiples elementos del mismo tipo (todos devueltos como filas). Para extraer diferentes tipos de elementos (por ejemplo, tanto títulos como precios), haz llamadas de función separadas con diferentes selectores. Puedes combinar selectores CSS con comas para coincidir con múltiples tipos de elementos en una llamada, por ejemplo ".title, .price", pero los resultados estarán intercalados. Para extracción de datos estructurados donde necesitas mantener los títulos emparejados con sus precios, usa columnas separadas con un selector por columna.
La función devuelve hasta 500 elementos coincidentes por llamada. Si la página contiene más de 500 elementos coincidentes, solo se devuelven los primeros 500. Para la mayoría de casos de uso esto es más que suficiente. Si necesitas extraer páginas con números extremadamente grandes de elementos, considera usar selectores CSS más específicos para reducir los resultados, o usa parámetros de paginación si el sitio web objetivo los soporta.
SCRAPE_BY_CSS_PATH accede a las páginas como un visitante anónimo sin cookies ni datos de sesión. No puede extraer contenido detrás de muros de inicio de sesión, paywalls o barreras de autenticación. El scraper no soporta enviar cookies, headers o credenciales. Para contenido autenticado, necesitarías encontrar una API pública para ese servicio o usar una fuente de datos alternativa. Algunos sitios web ofrecen APIs JSON públicas o feeds RSS que pueden proporcionar los datos que necesitas sin autenticación.
El scraper hace solicitudes HTTP similares a un navegador web y no verifica ni aplica automáticamente las reglas de robots.txt. Sin embargo, debes revisar y respetar el archivo robots.txt del sitio web objetivo y los términos de servicio antes de extraer. La extracción excesiva puede llevar a que tu IP sea bloqueada. Usa la función responsablemente, evita extraer a alta frecuencia y respeta los límites de tasa. Unlimited Sheets aplica su propia limitación de tasa para prevenir abusos.
SCRAPE_BY_CSS_PATH es una función independiente que reemplaza la necesidad de IMPORTXML o IMPORTHTML en muchos casos. A diferencia de IMPORTXML, usa selectores CSS (que son más intuitivos para la mayoría de usuarios) en lugar de expresiones XPath. A diferencia de IMPORTHTML, puede apuntar a cualquier elemento en la página, no solo tablas y listas. Puedes usar SCRAPE_BY_CSS_PATH junto con funciones nativas de Google Sheets en la misma hoja de cálculo sin conflictos.
Funciones Relacionadas
SCRAPE_BY_XPATH
Extrae contenido usando expresión XPath (usa navegador sin interfaz para renderizado JS).
SCRAPE_BY_REGEX
Extrae contenido de una página web usando un patrón de expresión regular.
AI_SCRAPE
Scrape a URL and extract structured data using AI and natural language
Comienza a usar SCRAPE_BY_CSS_PATH hoy
Instala Unlimited Sheets para obtener SCRAPE_BY_CSS_PATH y 41 otras funciones poderosas en Google Sheets.