Reglas de extracción
Pasa JSON codificado en URL a extract_rules para obtener una salida estructurada de la página de destino. Cada regla tiene un selector CSS, un tipo de salida opcional y un indicador para devolver todas las coincidencias. Las reglas de extracción funcionan con o sin renderizado de JavaScript.
Endpoint
Sección titulada «Endpoint» GET https://scrape.shifter.io/v1?api_key=YOUR_API_KEY&url=<TARGET_URL>&extract_rules=<URL_ENCODED_JSON>
Parámetros
Sección titulada «Parámetros»| Parameter | Type | Required | Description |
|---|---|---|---|
api_key | string | yes | Tu clave de la Web Scraping API |
url | string | yes | URL de destino que se va a obtener |
extract_rules | string | yes | JSON codificado en URL que describe las reglas de extracción. |
Rule object
Sección titulada «Rule object»| Field | Type | Required | Description |
|---|---|---|---|
selector | string | yes | Selector CSS. |
output | string | no | html (por defecto), text, o @attr para extraer un atributo. |
all | string | no | "1" para devolver todas las coincidencias como un array, "0" (por defecto) para la primera coincidencia. |
Ejemplo de solicitud
Sección titulada «Ejemplo de solicitud»Extrae el título de la página como texto:
{"title": {"selector": "h1", "output": "text"}}curl "https://scrape.shifter.io/v1?api_key=YOUR_API_KEY&url=https%3A%2F%2Fexample.com&extract_rules=%7B%22title%22%3A%20%7B%22selector%22%3A%20%22h1%22%2C%20%22output%22%3A%20%22text%22%7D%7D"import jsonimport requests
rules = {"title": {"selector": "h1", "output": "text"}}r = requests.get("https://scrape.shifter.io/v1", params={ "api_key": "YOUR_API_KEY", "url": "https://example.com", "extract_rules": json.dumps(rules),})print(r.json())import fetch from 'node-fetch';
const rules = { title: { selector: 'h1', output: 'text' } };const url = 'https://scrape.shifter.io/v1?' + new URLSearchParams({ api_key: 'YOUR_API_KEY', url: 'https://example.com', extract_rules: JSON.stringify(rules),});const res = await fetch(url);console.log(await res.json());Ejemplo de respuesta
Sección titulada «Ejemplo de respuesta»{ "title": "Example Domain" }