

# Cómo armar una cola de rastreo a partir de resultados de búsqueda de Bing

Reúna una muestra pequeña de resultados de búsqueda de Bing, revise cada dirección y la relevancia de la página, y luego márquela como aceptada, rechazada o sin resolver antes de agregarla a una cola de rastreo. Un Actor es un programa alojado de recolección de datos. Una Task es un ajuste de entrada guardado. El Actor recolecta las filas de origen y el lector hace el análisis.

## Preparación de la primera revisión y contrato de la fuente

La compilación pública Google Search Scraper 1.0.15 admite Google, Bing, Brave y DuckDuckGo, pero solo Bing se acepta de manera afirmativa para este método aquí. La entrada pública actual de la tarea usa `queries ["AI agents", "small business automation"]`, `engines ["bing"]`, `maxResultsPerExecutedQuery 20`, `country "US"`, `language "en"`, `safeSearch true` e `includeSponsoredResults false`. Para esta prueba piloto, reemplace las listas completas de queries y de engines por una consulta prevista y `engines ["bing"]`, defina `maxResultsPerExecutedQuery 2`, el país previsto, el idioma y los mismos valores booleanos, y tenga en cuenta que no existe un ajuste de expansión ni una entrada pública de límite de páginas.

### Campos nativos del resultado y resumen de salida

Cada fila de resultado del conjunto de datos contiene estos campos exactos: `runId`, `country`, `language`, `safeSearch`, `engine`, `executedQuery`, `page`, `rankOnPage`, `rank`, `title`, `canonicalUrl`, `resultDomain`, `snippet`, `isSponsored`, `advertiserDomain`, `observedAt` y `schemaVersion`. Una fila representa una observación en un motor, una consulta, una página y una posición. El campo `canonicalUrl` aporta una dirección candidata normalizada, no una etiqueta canónica HTML revisada ni el enlace original. Los snippets son texto de búsqueda, no el contenido obtenido de la página.

El resumen de la ejecución de salida informa: `queriesRequested`, `searchesCompiled`, `executionsPlanned`, `enginesSuccessful`, `enginesFailed`, `pagesAttempted`, `pagesParsed`, `resultsSaved`, `engineStatusCounts`, `engineResultCounts`, `queryResultCounts` y `stopReason`.

### Referencia de la ejecución de control de Bing

Una ejecución de control exacta para `Python asyncio documentation` devolvió:

- `queriesRequested`: 1
- `searchesCompiled`: 1
- `executionsPlanned`: 1
- `enginesSuccessful`: 1
- `enginesFailed`: 0
- `pagesAttempted`: 1
- `pagesParsed`: 1
- `resultsSaved`: 2
- `engineStatusCounts`: `{"bing": {"ok": 1}}`
- `engineResultCounts`: `{"bing": 2}`
- `queryResultCounts`: `{"Python asyncio documentation": 2}`
- `stopReason`: `result_caps_reached`
- Resultados devueltos: dos URL directas de `docs.python.org` en las posiciones 1 y 2.

Esto solo demuestra una muestra acotada de metadatos de Bing. No prueba todos los mercados, los operadores de búsqueda, las posiciones repetidas ni la obtención del destino. Las fuentes primarias incluyen el [Google Search Scraper Actor](https://apify.com/chronometrica/google-search-scraper) y la [Bing Search Results Task](https://apify.com/chronometrica/google-search-scraper/examples/bing-search-results-scraper).

1. Defina las páginas que necesita y su regla de inclusión antes de buscar. Bing es una fuente de descubrimiento admitida aquí. Use un tema neutro y un tope finito de filas, en lugar de prometer cientos de sitios válidos. El descubrimiento por búsqueda aporta candidatos, no una promesa de que cada página se pueda recolectar.
2. Use consultas con una frase prevista, engines definido en bing y un límite pequeño de cantidad de filas. Revise la consulta ejecutada, el motor, las marcas de tiempo y la salida. La redacción de la consulta cambia su muestra de origen. Use palabras simples, salvo que usted mismo pruebe el significado en el motor de búsqueda.
3. Conserve las filas de resultado devueltas antes de elegir los destinos. Conserve el título, la dirección candidata, el host de origen, la posición, la consulta, la hora y el motivo de detención de la ejecución de origen. Rechace una dirección rota o que no sea web según su regla. Deje sin resolver una redirección opaca o un destino poco claro. Un nombre de campo de normalización, como dirección canónica, no prueba la identidad real de la página original. Conserve la cadena devuelta sin cambios como evidencia de origen.
4. Compare el host y la ruta de cada candidato con su propósito de recolección. Los títulos y los snippets de búsqueda pueden ser antiguos o incorrectos. Cuando haga falta, inspeccione el destino público mediante el proceso de recolección que usted utiliza como lector. Registre la URL final, el tipo de contenido y la evidencia de la página. No deduzca el contenido del producto solo a partir de un título. Las páginas de inicio de sesión y las páginas privadas siguen sin estar disponibles.
5. Asigne cada destino como aceptado, rechazado o que necesita revisión, con un motivo claro. Aceptado significa que cumple su revisión en ese momento. No garantiza el éxito del rastreo, derechos completos ni datos de producto exactos. Mantenga fuera de su cola aceptada las revisiones de destino fallidas y las lagunas de origen.
6. Combine solo las [direcciones de destino duplicadas ya revisadas](/es/articles/combinar-exportaciones-de-bing-sin-perder-evidencia/) bajo una regla segura y conserve todas las referencias de resultado. Mantenga separados los registros de observación y los de destino. No borre rutas distintas ni parámetros de consulta que identifican páginas diferentes. El mismo host no significa la misma página. El mismo título no significa el mismo destino.
7. Arme su cola pequeña con la dirección de destino, las referencias de origen, la evidencia de aceptación, la extracción deseada y el estado. Pase los destinos aceptados a un rastreador acotado y separado, hecho para esas páginas. El actor de búsqueda no ejecuta ese rastreo ni aporta el [texto principal](/es/articles/verificacion-del-texto-principal-extraido-de-una-pagina-web/).
8. Concilie sus observaciones recolectadas, los candidatos únicos revisados, los destinos aceptados, rechazados y sin resolver, y el estado del tope. Cero destinos aceptados puede ser una laguna normal, no una lista para completar con páginas adivinadas. Termine por revisar un destino antes de ampliar su presupuesto de descubrimiento.

## Ejemplo resuelto de ficción original

Todos los dominios, las palabras y los conteos de esta sección son ficción original. Siete observaciones devueltas apuntan a seis direcciones candidatas distintas bajo una regla exacta de destino. Dos observaciones comparten la dirección `https://garden.example/products`. Las otras cinco observaciones apuntan a una página de producto, una guía de blog, una redirección opaca, una página de inicio de sesión y una dirección no válida.

### 1. Siete observaciones de resultado

| ID de observación | Consulta | Posición | Observado en | URL devuelta | Referencia de origen |
| --- | --- | --- | --- | --- | --- |
| obs-1 | herramientas de jardín | 1 | 2026-10-13T06:20:14Z | https://garden.example/products | Motor Bing, página 1 |
| obs-2 | plantas de interior | 2 | 2026-10-13T06:20:15Z | https://garden.example/products | Motor Bing, página 1 |
| obs-3 | herramientas de jardín | 3 | 2026-10-13T06:20:16Z | https://garden.example/items/shears | Motor Bing, página 1 |
| obs-4 | plantas de interior | 4 | 2026-10-13T06:20:17Z | https://blog.example/guide | Motor Bing, página 1 |
| obs-5 | herramientas de jardín | 5 | 2026-10-13T06:20:18Z | https://redirect.example/out | Motor Bing, página 1 |
| obs-6 | plantas de interior | 6 | 2026-10-13T06:20:19Z | https://account.example/login | Motor Bing, página 1 |
| obs-7 | herramientas de jardín | 7 | 2026-10-13T06:20:20Z | ftp://invalid.example/file | Motor Bing, página 1 |

### 2. Seis candidatos de destino únicos y sus estados

| URL candidata de destino | Resultado de la revisión del destino | Estado de relevancia | Motivo / evidencia |
| --- | --- | --- | --- |
| `https://garden.example/products` | HTTP 200 válido | accepted_target | El índice compartido de productos coincide con el alcance de la recolección. |
| `https://garden.example/items/shears` | HTTP 200 válido | accepted_target | La página de un producto específico coincide con el alcance de la recolección. |
| `https://blog.example/guide` | HTTP 200 válido | rejected_target | La guía de blog no es pertinente para la recolección de productos. |
| `https://redirect.example/out` | No disponible / opaca | needs_review | La redirección opaca no se puede verificar de forma directa. |
| `https://account.example/login` | Inicio de sesión obligatorio | needs_review | El destino exige autenticación; no está disponible. |
| `ftp://invalid.example/file` | Esquema que no es HTTP | rejected_target | Una dirección mal formada o que no es http infringe la regla de recolección. |

### 3. Dos destinos aceptados de la cola

| Dirección de destino | Referencias de origen | Evidencia de la revisión | Extracción siguiente deseada | Estado del destino |
| --- | --- | --- | --- | --- |
| `https://garden.example/products` | obs-1, obs-2 | Estado HTTP 200 verificado; coincide con los criterios del índice de productos | Extraer la lista de artículos de la categoría | accepted |
| `https://garden.example/items/shears` | obs-3 | Estado HTTP 200 verificado; coincide con los criterios de un solo producto | Extraer los detalles del producto y el precio | accepted |

La conciliación muestra seis candidatos que dan dos destinos aceptados, dos destinos rechazados y dos destinos sin resolver. Las dos observaciones del índice de productos siguen unidas a un destino de la cola, con las referencias de consulta, posición y hora de ambas. No trate siete observaciones como siete sitios de rastreo ni descarte la referencia duplicada. Si el índice de productos falla cuando el rastreador separado se ejecuta después, registre esa falla; una aceptación anterior no garantiza la extracción.

## Acción siguiente

Registre un destino candidato y su revisión de relevancia antes de agregar ese destino aceptado a la cola de rastreo separada, o conserve needs_review si no está disponible, con el [Google Search Scraper Actor](https://apify.com/chronometrica/google-search-scraper) y el [ajuste predefinido Bing Search Results Task](https://apify.com/chronometrica/google-search-scraper/examples/bing-search-results-scraper).

## Fuentes y lecturas adicionales

- [Automatice el proceso de encontrar URL para extraer una discusión de Reddit](https://www.reddit.com/r/learnpython/comments/f96o07/automate_the_process_of_finding_urls_for_scraping/)