¿Qué parámetros de respuesta puedes obtener en Scrapeless?
Senior Web Scraping Engineer
En los escenarios modernos de scraping de datos web, simplemente recuperar páginas HTML a menudo no satisface las necesidades comerciales cuando se enfrentan a mecanismos sofisticados de anti-scraping. En Scrapeless, seguimos comprometidos a elevar las capacidades de nuestro producto desde la perspectiva de un desarrollador.
Hoy, estamos emocionados de anunciar una actualización importante a uno de los servicios centrales de Scrapeless — la API Universal de Scraping. Web Unlocker ahora soporta múltiples formatos de respuesta. Esta mejora incrementa significativamente la flexibilidad de la API, ofreciendo una experiencia de scraping de datos más adaptable y eficiente tanto para usuarios empresariales como para desarrolladores.
¿Por Qué Hacemos una Actualización?
Anteriormente, la API Universal de Scraping devolvía por defecto el contenido de la página HTML, lo que funcionaba bien para acceder rápidamente a páginas no encriptadas o sitios web con medidas de anti-scraping más débiles. Sin embargo, a medida que aumentaron las demandas de automatización de los usuarios, observamos que muchos usuarios aún tenían que procesar manualmente las estructuras de datos, limpiar el contenido y extraer elementos después de obtener el HTML—agregando una carga innecesaria al desarrollo. ¿Podríamos optimizar este proceso para ofrecer contenido preprocesado en un solo paso?
¡Ahora puedes!
Hemos renovado la lógica de respuesta. Al configurar el parámetro response_type, los desarrolladores pueden especificar de manera flexible el formato de datos deseado. Ya sea que necesites HTML sin procesar, texto simple o metadatos estructurados, una simple configuración de parámetro es todo lo que se necesita.
Ahora, Formatos de Respuesta Que Puedes Obtener:
Los formatos actualmente soportados incluyen, pero no se limitan a:
- Filtros de salida JSON: Utiliza el parámetro
outputspara filtrar datos en formato JSON. Los tipos de filtro permitidos incluyenemail,phone_numbers,headings, y otros 9; los resultados se devuelven en JSON estructurado. - Múltiples formatos de retorno: Más allá del filtrado JSON, puedes especificar directamente el formato de respuesta agregando el parámetro
response_typea tu solicitud (por ejemplo,response_type=plaintext).
Los formatos actualmente soportados incluyen:
HTML: Extrae el contenido de la página en formato HTML (ideal para páginas estáticas).Plaintext: Devuelve el contenido raspado como texto plano, sin etiquetas HTML ni formato Markdown—perfecto para procesamiento o análisis de texto.Markdown: Extrae el contenido de la página en formato Markdown (óptimo para páginas estáticas basadas en Markdown), facilitando su lectura y procesamiento.PNG/JPEG: Al establecerresponse_type=png, captura una captura de pantalla de la página objetivo y la devuelve en formato PNG o JPEG (con opciones para capturas de pantalla de toda la página).
Nota: El tipo de respuesta predeterminado es html.
Vamos a Ver Ejemplos
1. Filtrado de valor de retorno JSON:
Puedes usar el parámetro outputs para filtrar datos en formato JSON. Una vez que este parámetro se establece, el tipo de respuesta se fijará en JSON.
El parámetro acepta una lista de nombres de filtros separados por comas y devuelve los datos en un formato JSON estructurado. Los tipos de filtro soportados incluyen: phone_numbers, headings, images, audios, videos, links, menus, hashtags, emails, metadata, tables, y favicon.
El siguiente código de muestra demuestra cómo obtener toda la información de imagen en la página de inicio del sitio scrapeless:
Javascript
JavaScript
const axios = require('axios');
const fs = require('fs');
(async () => {
const payload = {
actor: "unlocker.webunlocker",
input: {
url: "https://www.scrapeless.com",
js_render: true,
outputs: "images"
},
proxy: {
country: "ANY"
}
};
const response = await axios.post("https://api.scrapeless.com/api/v1/unlocker/request", payload, {
headers: {
"x-api-token": "API Key",
"Content-Type": "application/json"
},
timeout: 60000
});
if (response.data?.code === 200) {
fs.writeFileSync('outputs.json', response.data.data, 'utf8');
}
})();
Python
Python
import requests
payload = {
"actor": "unlocker.webunlocker",
"input": {
"url": "https://www.scrapeless.com",
"js_render": True,
"outputs": "images",
},
"proxy": {
"country": "ANY"
}
}
response = requests.post(
"https://api.scrapeless.com/api/v1/unlocker/request",
json=payload,
headers={
"x-api-token": "API Key",
"Content-Type": "application/json"
},
timeout=60
)
if response.json()["code"] == 200:
with open('outputs.json', 'w', encoding='utf-8') as f:
f.write(response.json()["data"])
- Resultados:
JSON
{
"images": [
"data:image/svg+xml;base64,PHN2ZyBzdHJva2U9IiNGRkZGRkYiIGZpbGw9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMCIgdmlld0JveD0iMCAwIDI0IDI0IiBoZWlnaHQ9IjIwMHB4IiB3aWR0aD0iMjAwcHgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3Qgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiB4PSIyIiB5PSIyIiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjIiIHJ4PSIyIj48L3JlY3Q+PC9zdmc+Cg==",
"https://www.scrapeless.com/_next/image?url=%2Fassets%2Fimages%2Fcode%2Fcode-l.jpg&w=3840&q=75",
JSON
{
"result": [
"https://www.scrapeless.com/_next/image?url=%2Fassets%2Fimages%2Fregulate-compliance.png&w=640&q=75",
"https://www.scrapeless.com/_next/image?url=https%3A%2F%2Fassets.scrapeless.com%2Fprod%2Fimages%2Fauthor-avatars%2Falex-johnson.png&w=48&q=75",
"https://www.scrapeless.com/_next/image?url=https%3A%2F%2Fassets.scrapeless.com%2Fprod%2Fposts%2Fdeep-serp-api-online%2Fd723e1e516e3dd956ba31c9671cde8ea.jpeg&w=3840&q=75",
"https://www.scrapeless.com/_next/image?url=https%3A%2F%2Fassets.scrapeless.com%2Fprod%2Fposts%2Fscrapeless-web-scraping-toolkit%2Fac20e5f6aaec5c78c5076cb254c2eb78.png&w=3840&q=75",
"https://www.scrapeless.com/_next/image?url=https%3A%2F%2Fassets.scrapeless.com%2Fprod%2Fimages%2Fauthor-avatars%2Femily-chen.png&w=48&q=75",
"https://www.scrapeless.com/_next/image?url=https%3A%2F%2Fassets.scrapeless.com%2Fprod%2Fposts%2Fgoogle-shopping-scrape%2F251f14aedd946d0918d29ef710a1b385.png&w=3840&q=75"
]
}
2. HTML
Añadir response_type=html a la solicitud para devolver contenido de texto formateado en HTML:
Javascript
JavaScript
const axios = require('axios');
const fs = require('fs');
(async () => {
const payload = {
actor: "unlocker.webunlocker",
input: {
url: "https://www.example.com",
js_render: true,
response_type: "html"
},
proxy: {
country: "ANY"
}
};
const response = await axios.post("https://api.scrapeless.com/api/v1/unlocker/request", payload, {
headers: {
"x-api-token": "API Key",
"Content-Type": "application/json"
},
timeout: 60000
});
if (response.data?.code === 200) {
fs.writeFileSync('response.html', response.data.data, 'utf8');
}
})();
Python
Python
import requests
payload = {
"actor": "unlocker.webunlocker",
"input": {
"url": "https://www.example.com",
"js_render": True,
"response_type": "html"
},
"proxy": {
"country": "ANY"
}
}
response = requests.post(
"https://api.scrapeless.com/api/v1/unlocker/request",
json=payload,
headers={
"x-api-token": "API Key",
"Content-Type": "application/json"
},
timeout=60
)
if response.json()["code"] == 200:
with open('response.html', 'w', encoding='utf-8') as f:
f.write(response.json()["data"])
- Resultados:
HTML
<!DOCTYPE html><html><head>
<title>Dominio de Ejemplo</title>
<meta charset="utf-8">
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type="text/css">
body {
background-color: #f0f0f2;
margin: 0;
padding: 0;
font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
div {
width: 600px;
margin: 5em auto;
padding: 2em;
background-color: #fdfdff;
border-radius: 0.5em;
box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
}
a:link, a:visited {
color: #38488f;
text-decoration: none;
}
@media (max-width: 700px) {
div {
margin: 0 auto;
width: auto;
}
}
</style>
</head>
<body>
<div>
<h1>Dominio de Ejemplo</h1>
<p>Este dominio es para uso en ejemplos ilustrativos en documentos. Puedes usar este
dominio en la literatura sin coordinación previa o pedir permiso.</p>
<p><a href="https://www.iana.org/domains/example">Más información...</a></p>
</div>
</body></html>
3. Texto Plano
La función de Texto Plano es una opción de salida que devuelve el contenido raspado en texto plano en lugar de HTML o Markdown. Simplifica el proceso de extracción de contenido y hace que el procesamiento o análisis de texto sea más conveniente.
El siguiente ejemplo muestra cómo obtener el contenido en texto plano de una página.
Javascript
JavaScript
const axios = require('axios');
const fs = require('fs');
(async () => {
const payload = {
actor: "unlocker.webunlocker",
input: {
url: "https://apidocs.scrapeless.com/llms.txt",
js_render: true,
response_type: "plaintext",
},
proxy: {
country: "ANY"
}
};
const response = await axios.post("https://api.scrapeless.com/api/v1/unlocker/request", payload, {
headers: {
"x-api-token": "API Key",
"Content-Type": "application/json"
},
timeout: 60000
});
if (response.data?.code === 200) {
fs.writeFileSync('response.txt', response.data.data, 'utf8');
}
})();
Python
Python
import requests
payload = {
"actor": "unlocker.webunlocker",
"input": {
"url": "https://apidocs.scrapeless.com/llms.txt",
"js_render": True,
"response_type": "plaintext",
},
"proxy": {
Plain Text
# Scrapeless API
## Documentación
- Navegador de Scraping [API de CDP](https://apidocs.scrapeless.com/doc-801748.md):
- API de Scraping > shopee [Lista de Actores](https://apidocs.scrapeless.com/doc-754333.md):
- API de Scraping > amazon [Parámetros de API](https://apidocs.scrapeless.com/doc-857373.md):
- API de Scraping > búsqueda de google [Parámetros de API](https://apidocs.scrapeless.com/doc-800321.md):
- API de Scraping > tendencias de google [Parámetros de API](https://apidocs.scrapeless.com/doc-796980.md):
- API de Scraping > vuelos de google [Parámetros de API](https://apidocs.scrapeless.com/doc-796979.md):
- API de Scraping > gráfico de vuelos de google [Parámetros de API](https://apidocs.scrapeless.com/doc-908741.md):
- API de Scraping > mapas de google [Parámetros de API (Google Maps)](https://apidocs.scrapeless.com/doc-834792.md):
- API de Scraping > mapas de google [Parámetros de API (Autocomplete de Google Maps)](https://apidocs.scrapeless.com/doc-834799.md):
- API de Scraping > mapas de google [Parámetros de API (Opiniones de Contribuyentes de Google Maps)](https://apidocs.scrapeless.com/doc-834806.md):
- API de Scraping > mapas de google [Parámetros de API (Direcciones de Google Maps)](https://apidocs.scrapeless.com/doc-834821.md):
- API de Scraping > mapas de google [Parámetros de API (Opiniones de Google Maps)](https://apidocs.scrapeless.com/doc-834831.md):
- API de Scraping > google scholar [Parámetros de API (Google Scholar)](https://apidocs.scrapeless.com/doc-842638.md):
- API de Scraping > google scholar [Parámetros de API (Autor de Google Scholar)](https://apidocs.scrapeless.com/doc-842645.md):
- API de Scraping > google scholar [Parámetros de API (Cita de Google Scholar)](https://apidocs.scrapeless.com/doc-842647.md):
- API de Scraping > google scholar [Parámetros de API (Perfiles de Google Scholar)](https://apidocs.scrapeless.com/doc-842649.md):
- API de Scraping > trabajos de google [Parámetros de API](https://apidocs.scrapeless.com/doc-850038.md):
- API de Scraping > compra de google [Parámetros de API](https://apidocs.scrapeless.com/doc-853695.md):
- API de Scraping > hoteles de google [Parámetros de API](https://apidocs.scrapeless.com/doc-865231.md):
- API de Scraping > hoteles de google [Tipos de Propiedades de Alquileres Vacacionales Admitidos de Google](https://apidocs.scrapeless.com/doc-890578.md):
- API de Scraping > hoteles de google [Tipos de Propiedades de Hoteles Admitidos de Google](https://apidocs.scrapeless.com/doc-890580.md):
- API de Scraping > hoteles de google [Servicios Admitidos de Alquileres Vacacionales de Google](https://apidocs.scrapeless.com/doc-890623.md):
- API de Scraping > hoteles de google [Servicios Admitidos de Hoteles de Google](https://apidocs.scrapeless.com/doc-890631.md):
- API de Scraping > noticias de google [Parámetros de API](https://apidocs.scrapeless.com/doc-866643.md):
- API de Scraping > lente de google [Parámetros de API](https://apidocs.scrapeless.com/doc-866644.md):
- API de Scraping > finanzas de google [Parámetros de API](https://apidocs.scrapeless.com/doc-873763.md):
- API de Scraping > producto de google [Parámetros de API](https://apidocs.scrapeless.com/doc-880407.md):
- API de Scraping [tienda de google play](https://apidocs.scrapeless.com/folder-3277506.md):
- API de Scraping > tienda de google play [Parámetros de API](https://apidocs.scrapeless.com/doc-882690.md):
- API de Scraping > tienda de google play [Categorías Admitidas de Google Play](https://apidocs.scrapeless.com/doc-882822.md):
- API de Scraping > anuncios de google [Parámetros de API](https://apidocs.scrapeless.com/doc-881439.md):
- API de Scraping Universal [Documentos de Renderizado JS](https://apidocs.scrapeless.com/doc-801406.md):
## Documentos de API
- Usuario [Obtener Información del Usuario](https://apidocs.scrapeless.com/api-11949851.md): Recuperar información básica sobre el usuario actualmente autenticado, incluyendo su saldo de cuenta y detalles del plan de suscripción.
- Navegador de Scraping [Conectar](https://apidocs.scrapeless.com/api-11949901.md):
- Navegador de Scraping [Sesiones en ejecución](https://apidocs.scrapeless.com/api-16890953.md): Obtener todas las sesiones en ejecución
- Navegador de Scraping [URL en vivo](https://apidocs.scrapeless.com/api-16891208.md): Obtener la URL en vivo de una sesión en ejecución por el ID de tarea de la sesión
- API de Scraping > shopee [Producto de Shopee](https://apidocs.scrapeless.com/api-11953650.md):
- API de Scraping > shopee [Búsqueda de Shopee](https://apidocs.scrapeless.com/api-11954010.md):
- API de Scraping > shopee [Recomendación de Shopee](https://apidocs.scrapeless.com/api-11954111.md):
- API de Scraping > sitios br [Soluções cnpjreva](https://apidocs.scrapeless.com/api-11954435.md): URL objetivo `https://solucoes.receita.fazenda.gov.br/servicos/cnpjreva/valida_recaptcha.asp`
- API de Scraping > sitios br [Soluções certidaointernet](https://apidocs.scrapeless.com/api-12160439.md): URL objetivo `https://solucoes.receita.fazenda.gov.br/Servicos/certidaointernet/pj/emitir`
- Scraping API > sitios br Servicos receita: url objetivo
https://servicos.receita.fazenda.gov.br/servicos/cpf/consultasituacao/ConsultaPublica.asp - Scraping API > sitios br Consopt: url objetivo
https://consopt.www8.receita.fazenda.gov.br/consultaoptantes - Scraping API > amazon producto:
- Scraping API > amazon vendedor:
- Scraping API > amazon palabras clave:
- Scraping API > búsqueda de google Google Search:
- Scraping API > búsqueda de google Google Images:
- Scraping API > búsqueda de google Google Local:
- Scraping API > tendencias de google AutoComplete:
- Scraping API > tendencias de google Interés a lo largo del tiempo:
- Scraping API > tendencias de google Desglose comparativo por región:
- Scraping API > tendencias de google Interés por subregión:
- Scraping API > tendencias de google Consultas relacionadas:
- Scraping API > tendencias de google Temas relacionados:
- Scraping API > tendencias de google Tendencias ahora:
- Scraping API > vuelos de google Ida y vuelta:
- Scraping API > vuelos de google Solo ida:
- Scraping API > vuelos de google Multiciudad:
- Scraping API > gráfico de vuelos de google gráfico:
- Scraping API > mapas de google Google Maps:
- Scraping API > mapas de google Autocompletar Google Maps:
- Scraping API > mapas de google Reseñas de contribuyentes de Google Maps:
- Scraping API > mapas de google Direcciones de Google Maps:
- Scraping API > mapas de google Reseñas de Google Maps:
- Scraping API > google scholar Google Scholar:
- Scraping API > google scholar Autor de Google Scholar:
- Scraping API > google scholar Citar Google Scholar:
- Scraping API > google scholar Perfiles de Google Scholar:
- Scraping API > empleos de google Google Jobs:
- Scraping API > compras de google Google Shopping:
- Scraping API > hoteles de google Google Hotels:
- Scraping API > noticias de google Google News:
- Scraping API > google lens Google Lens:
- Scraping API > finanzas de google Google Finance:
- Scraping API > finanzas de google Mercados de Google Finance:
- Scraping API > producto de google Google Product:
- Scraping API > tienda de google play Google Play Games:
- Scraping API > tienda de google play Google Play Books:
- Scraping API > tienda de google play Google Play Movies:
- Scraping API > tienda de google play Google Play Product:
- Scraping API > tienda de google play Google Play Apps:
- Scraping API > anuncios de google Google Ads:
- Scraping API Solicitud de Scraper:
- Scraping API Obtener Resultado de Scraper:
- API de Scraping Universal JS Render:
- API de Scraping Universal Desbloqueador Web:
- API de Scraping Universal Cookie Akamaiweb:
- API de Scraping Universal Sensor Akamaiweb:
- Crawlers > Raspar Raspar una sola URL:
- Crawler > Scrape Raspar múltiples URL:
- Crawler > Scrape Cancelar un trabajo de raspado por lotes:
- Crawler > Scrape Obtener el estado de un raspado:
- Crawler > Scrape Obtener el estado de un trabajo de raspado por lotes:
- Crawler > Scrape Obtener los errores de un trabajo de raspado por lotes:
- Crawler > Crawl Raspar múltiples URL basadas en opciones:
- Crawler > Crawl Cancelar un trabajo de raspado:
- Crawler > Crawl Obtener el estado de un trabajo de raspado:
- Crawler > Crawl Obtener los errores de un trabajo de raspado:
- Público estado del actor:
- Público estado del actor:
### 4. Markdown
Al agregar `response_type=markdown` en los parámetros de la solicitud, la API de Raspado Universal de Scrapeless devolverá el contenido de una página específica en formato Markdown.
El siguiente ejemplo muestra el efecto de markdown de la [página de inicio rápida del Raspador](https://docs.scrapeless.com/en/scraping-browser/quickstart/getting-started). Primero usamos la inspección de página para obtener el selector CSS de la tabla.

En este ejemplo, el selector CSS que obtenemos es: `#__next > div:nth-child(3) > div._mx-auto._flex._max-w-\[90rem\] > article > main > table`. A continuación se presenta el código de muestra completo.
> Javascript
```JavaScript
const axios = require('axios');
const fs = require('fs');
(async () => {
const payload = {
actor: "unlocker.webunlocker",
input: {
url: "https://docs.scrapeless.com/en/scraping-browser/quickstart/getting-started",
js_render: true,
response_type: "markdown",
selector: "#__next > div:nth-child(3) > div._mx-auto._flex._max-w-\[90rem\] > article > main > table", // Selector CSS del elemento tabla de la página
},
proxy: {
country: "ANY"
}
};
const response = await axios.post("https://api.scrapeless.com/api/v1/unlocker/request", payload, {
headers: {
"x-api-token": "API Key",
"Content-Type": "application/json"
},
timeout: 60000
});
if (response.data?.code === 200) {
fs.writeFileSync('response.md', response.data.data, 'utf8');
}
})();
Python
Python
import requests
payload = {
"actor": "unlocker.webunlocker",
"input": {
"url": "https://docs.scrapeless.com/en/scraping-browser/quickstart/getting-started",
"js_render": True,
"response_type": "markdown",
"selector": "#__next > div:nth-child(3) > div._mx-auto._flex._max-w-\[90rem\] > article > main > table", # Selector CSS del elemento tabla de la página
},
"proxy": {
"country": "ANY"
}
}
response = requests.post(
"https://api.scrapeless.com/api/v1/unlocker/request",
json=payload,
headers={
"x-api-token": "API Key",
"Content-Type": "application/json"
},
timeout=60
)
if response.json()["code"] == 200:
with open('response.md', 'w', encoding='utf-8') as f:
f.write(response.json()["data"])
Display of the crawled table markdown text:
Markdown
| Nombre del Parámetro | Tipo | Descripción |
| --- | --- | --- |
| token | string | La clave API generada en el panel de control. |
| session_ttl | number | Controla la duración de la sesión y cierra automáticamente la instancia del navegador después del tiempo de espera. Medido en segundos (s), por defecto son 180 segundos (3 minutos), personalizable entre 60 segundos (1 minuto) y 900 segundos (máximo recomendado de 15 minutos, pero se pueden establecer tiempos más largos). Una vez que se alcanza el TTL especificado, la sesión expirará y el Raspador cerrará la instancia del navegador para liberar recursos. |
| session_name | string | Establece un nombre para tu sesión para facilitar la búsqueda y visualización en la lista de sesiones históricas. |
| session_recording | boolean | Si habilitar la grabación de sesión. Cuando está habilitado, todo el proceso de ejecución de la sesión del navegador se grabará automáticamente, y una vez completada la sesión, se podrá reproducir y ver en los detalles de la lista de sesiones históricas. Por defecto es falso. |
| proxy_url | string | Se utiliza para establecer la URL del proxy del navegador, por ejemplo: http://user:pass@ip:port. Si se establece este parámetro, se ignorarán todos los demás parámetros proxy_*. - 💡 La funcionalidad del proxy personalizado actualmente solo está disponible para usuarios de suscripción Enterprise y Enterprise Enhanced. ¡Mejora ahora! - 💡 Los usuarios de nivel empresarial personalizados pueden contactarnos para usar proxies personalizados. |
| país_proxy | cadena | Establece el país/región objetivo para el proxy, enviando solicitudes a través de una dirección IP de esa región. Puedes especificar un código de país (por ejemplo, US para Estados Unidos, GB para Reino Unido, ANY para cualquier país). Consulta los códigos de país para todas las opciones soportadas. |
| huella_dactilar | cadena | Una huella de navegador es una "huella digital" casi única creada utilizando la información de configuración de tu navegador y dispositivo, que puede ser utilizada para rastrear tu actividad en línea incluso sin cookies. Afortunadamente, configurar huellas dactilares en Scraping Browser es opcional. Ofrecemos una personalización profunda de las huellas dactilares del navegador, como parámetros básicos como agente de usuario del navegador, zona horaria, idioma y resolución de pantalla, y soporte para extender la funcionalidad a través de parámetros de lanzamiento personalizados. Adecuado para la gestión de múltiples cuentas, recopilación de datos y escenarios de protección de la privacidad, el uso del propio navegador Chromium de scrapeless evita completamente la detección. Por defecto, nuestro servicio Scraping Browser genera una huella aleatoria para cada sesión. Referencia |
### 5. PNG/JPEG
Al agregar response_type=png a la solicitud, puedes capturar una captura de pantalla de la página objetivo y devolver una imagen png o jpeg. Cuando el resultado de la respuesta se establece en png o jpeg, puedes establecer si el resultado devuelto es a pantalla completa utilizando el parámetro `response_image_full_page=true`. El valor predeterminado de este parámetro es falso.
El siguiente ejemplo de código muestra cómo obtener una captura de pantalla de un área especificada en la [página de inicio de Scrapeless](https://www.scrapeless.com/?utm_source=official&utm_medium=blog&utm_campaign=response-formats-update). Primero, encontramos el selector CSS para el área que queremos capturar la imagen.

A continuación se muestra el código de intercepción:
> Javascript
```JavaScript
const axios = require('axios');
const fs = require('fs');
(async () => {
const payload = {
actor: "unlocker.webunlocker",
input: {
url: "https://www.scrapeless.com/en",
js_render: true,
response_type: "png",
selector: "body > main > div > section > div > div.banner.px-web-gap-5.py-web-gap-10.flex.flex-col.border-b.border-\(--web-landing-stroke-3-primary\)", // Selector CSS del elemento de la tabla de la página
},
proxy: {
country: "ANY"
}
};
const response = await axios.post("https://api.scrapeless.com/api/v1/unlocker/request", payload, {
headers: {
"x-api-token": "Clave API",
"Content-Type": "application/json"
},
timeout: 60000
});
if (response.data?.code === 200) {
fs.writeFileSync('response.png',Buffer.from(response.data.data, 'base64'));
}
})();
Python
Python
import requests
payload = {
"actor": "unlocker.webunlocker",
"input": {
"url": "https://www.scrapeless.com/en",
"js_render": True,
"response_type": "png",
"selector": "body > main > div > section > div > div.banner.px-web-gap-5.py-web-gap-10.flex.flex-col.border-b.border-\(--web-landing-stroke-3-primary\)", # Selector CSS del elemento de la tabla de la página
},
"proxy": {
"country": "ANY"
}
}
response = requests.post(
"https://api.scrapeless.com/api/v1/unlocker/request",
json=payload,
headers={
"x-api-token": "Clave API",
"Content-Type": "application/json"
},
timeout=60
)
if response.json()["code"] == 200:
with open('response.png', 'wb') as f:
content = base64.b64decode(response.json()["data"])
f.write(content)
- Resultado de la devolución de PNG:

👉 Visita Scrapeless Docs para aprender más
👉 Consulta la documentación de la API ahora: JS Render
Los escenarios de uso están completamente cubiertos
Esta actualización es especialmente adecuada para:
- Aplicaciones de extracción de contenido (como generación de resúmenes, recopilación de inteligencia)
- Crawl de datos SEO (como análisis de meta, datos estructurados)
- Plataforma de agregación de noticias (extraer rápidamente texto y autor)
- Herramientas de análisis y monitoreo de enlaces (extraer href, información de nofollow)
Ya sea que desees rastrear texto rápidamente o quieras datos estructurados, esta actualización puede ayudarte a obtener más resultados con menos esfuerzo.
Pruébalo ahora
La función ha sido lanzada completamente en Scrapeless. No se requiere autorización adicional ni plan de actualización. ¡Simplemente limita el parámetro de salida o pasa el parámetro response_type para experimentar el nuevo formato de retorno de datos!
Scrapeless siempre se ha comprometido a construir una plataforma de datos web inteligente, estable y fácil de usar. Esta actualización es solo otro paso adelante. Agradecemos tu experiencia y comentarios, ¡hagamos que la adquisición de datos web sea más fácil juntos!
🔗 Prueba la API de Scraping Universal de Scrapeless ahora
📣 Únete a la comunidad para recibir actualizaciones y consejos prácticos en primer lugar.
En Scrapeless, solo accedemos a datos disponibles públicamente y cumplimos estrictamente con las leyes, regulaciones y políticas de privacidad del sitio web aplicables. El contenido de este blog es sólo para fines de demostración y no implica ninguna actividad ilegal o infractora. No ofrecemos garantías y renunciamos a toda responsabilidad por el uso de la información de este blog o enlaces de terceros. Antes de realizar cualquier actividad de scraping, consulte a su asesor legal y revise los términos de servicio del sitio web de destino u obtenga los permisos necesarios.



