Cómo raspar noticias de Bing
Advanced Data Extraction Specialist
TL;DR:
- Los resultados de Bing News viven en elementos
.news-card, y los datos limpios están en atributos, no en texto. Cada tarjeta contienedata-title, un atributourlydata-author(el editor) — lee esos en lugar de raspar el texto renderizado, que mezcla la marca de tiempo. - La página se renderiza del lado del cliente, así que necesitas un navegador real. Bing construye la cuadrícula de noticias con JavaScript después de la carga inicial; una simple solicitud HTTP devuelve la estructura, no las tarjetas.
- La paginación es un desplazamiento en la URL. Agrega
&first=11,&first=21, … para navegar páginas de resultados más profundas — no hay un botón de "siguiente" que hacer clic, solo el desplazamiento. - Toma el fragmento del atributo
title..snippetmuestra texto truncado en pantalla pero almacena el resumen completo en su atributotitle. - Fija la salida residencial de EE. UU. para resultados estables. Bing localiza y limita la tasa por IP; una sesión residencial constante en EE. UU. mantiene predecible el conjunto de resultados y el marcado.
- Gratis para comenzar. Nuevas cuentas de Scrapeless incluyen tiempo de ejecución gratis para el Navegador de Raspado — regístrate en app.scrapeless.com.
Introducción: convertir Bing News en un feed estructurado
Una página de búsqueda de Bing News es un feed dinámico impulsado por consultas — titulares, editores, marcas de tiempo y resúmenes para cualquier tema que le des. Eso la hace útil para monitoreo de marcas, investigación de mercado y para alimentar artículos frescos a un agente de IA. El problema es que nada de esto llega como HTML limpio que se pueda grep.
La cuadrícula se construye en el navegador. Carga bing.com/news/search con un cliente HTTP simple y obtienes la estructura de la página, no las historias — las tarjetas solo aparecen después de que se ejecuta JavaScript. Y una vez que se renderizan, el texto en pantalla mezcla el editor y el tiempo relativo ("15h en MSN"), así que leer innerText te da datos que luego tienes que desenredar.
Esta guía ejecuta un raspador de Bing News en Scrapeless Scraping Browser — un navegador en la nube anti-detección conectado a Puppeteer — y lee los atributos estructurados que Bing ya adjunta a cada tarjeta. Cada fragmento a continuación se ejecutó contra una búsqueda en vivo. Solo resultados públicos.
Lo Que Puedes Hacer Con Esto
- Construir un feed de temas — obtener cada titular, editor, enlace y resumen para un término de búsqueda.
- Monitorear una marca o producto volviendo a ejecutar la misma consulta en un horario y comparando los resultados.
- Recolectar URLs de artículos para pasar a un rastreador de texto completo más adelante.
- Navegar páginas de resultados profundas con el desplazamiento
first=para recoger mucho más que la primera pantalla. - Alimentar a un agente de IA un conjunto de noticias limpio y estructurado en lugar de HTML sin procesar.
Por qué Scrapeless Scraping Browser
Scrapeless Scraping Browser es un navegador en la nube personalizable, anti-detección, diseñado para crawlers web y agentes de IA. Para Bing News específicamente, trae:
- Chromium desarrollado por nosotros — renderiza el JavaScript que construye la cuadrícula de noticias, así que las tarjetas realmente existen en el DOM.
- Huella anti-detección — la sesión se comporta como un navegador real, así que la página de resultados se sirve normalmente.
- Proxies residenciales en más de 195 países — fija la salida en EE. UU. para que Bing devuelva un conjunto de resultados consistente y localizado.
- Persistencia de sesión — mantiene una sesión activa a través de solicitudes paginadas.
- Una conexión estándar de Puppeteer —
Puppeteer.connect()devuelve unBrowsernormal; tu código de extracción es Puppeteer simple.
Obtén tu clave de API en el plan gratuito en app.scrapeless.com.
Requisitos Previos
- Node.js 18 o superior
- Una cuenta Scrapeless y clave de API — regístrate en app.scrapeless.com
- Familiaridad básica con Puppeteer
Instalar
bash
npm install @scrapeless-ai/sdk puppeteer-core
bash
export SCRAPELESS_API_KEY="tu_token_api_aqui"
Paso 1 — Conectar y cargar la búsqueda
Conéctate al navegador en la nube, fija la salida en EE. UU. y abre la URL de búsqueda de noticias para tu consulta. La consulta va en el parámetro q:
javascript
import { Puppeteer } from '@scrapeless-ai/sdk';
const browser = await Puppeteer.connect({
apiKey: process.env.SCRAPELESS_API_KEY,
sessionName: 'bing-news',
proxyCountry: 'US',
sessionTTL: 300,
});
const page = await browser.newPage();
const query = 'openai';
await page.goto(`https://www.bing.com/news/search?q=${encodeURIComponent(query)}`, {
waitUntil: 'networkidle2',
timeout: 60000,
});
console.log(await page.title());
// 'openai - Buscar Noticias'
networkidle2 espera a que se estabilicen las solicitudes de resultados, así que las tarjetas están en el DOM antes de que las leas.
Paso 2 — Extraer las tarjetas de sus atributos
Cada resultado es una .news-card. En lugar de analizar el texto renderizado, lee los atributos estructurados que Bing adjunta a la tarjeta — te dan el título limpio, enlace y editor directamente:
javascript
const articles = await page.evaluate(() => {
javascript
const abs = (u) => { try { return new URL(u, location.href).href; } catch { return null; } };
return [...document.querySelectorAll('.news-card')]
.map((card) => ({
title: card.getAttribute('data-title'),
url: abs(card.getAttribute('url')),
source: card.getAttribute('data-author'),
snippet:
card.querySelector('.snippet')?.getAttribute('title') ||
card.querySelector('.snippet')?.innerText?.trim() ||
null,
}))
.filter((a) => a.title && a.url);
});
console.log(articles.length, 'artículos');
console.log(articles[0]);
// 12 artículos
// {
// title: "El negocio tecnológico de Japón SoftBank lanza 'parches' de OpenAI contra ciberataques",
// url: 'https://apnews.com/article/openai-softbank-japan-technology-intelligence-cyberattacks-d8d3f9b2e5042ea949a7d5c53b782d96',
// source: 'Noticias de Associated Press',
// snippet: 'El gigante tecnológico japonés SoftBank Group Corp. está lanzando un servicio ...'
// }
data-author es el nombre del editor por sí solo ("Noticias de Associated Press"), sin la marca de tiempo "15h en MSN" que lleva el texto visible. El elemento .snippet se trunca en pantalla pero mantiene el resumen completo en su atributo title, por lo que se debe leer primero.
Consigue tu clave API en el plan gratuito: app.scrapeless.com
Paso 3 — Páginas de resultados más profundos
Bing News pagina con un desplazamiento first= en la URL; no hay botón de siguiente, solo incrementas el desplazamiento en diez. Reutiliza la misma sesión y elimina duplicados por título, ya que Bing reordena algunas tarjetas a través de las páginas:
javascript
const seen = new Map();
for (const first of [1, 11, 21]) {
await page.goto(
`https://www.bing.com/news/search?q=${encodeURIComponent(query)}&first=${first}`,
{ waitUntil: 'networkidle2', timeout: 60000 }
);
const batch = await page.evaluate(() =>
[...document.querySelectorAll('.news-card')]
.map((card) => card.getAttribute('data-title'))
.filter(Boolean)
);
for (const title of batch) seen.set(title, true);
console.log(`first=${first}: ${batch.length} tarjetas, ${seen.size} únicas hasta ahora`);
}
// first=1: 10 tarjetas, 10 únicas hasta ahora
// first=11: 10 tarjetas, 18 únicas hasta ahora
// first=21: 10 tarjetas, 26 únicas hasta ahora
Cada desplazamiento devuelve aproximadamente diez tarjetas; el conteo único en ejecución aumenta a medida que avanzas. Sigue incrementando hasta que el total único deje de crecer; ese es el final del conjunto de resultados para la consulta.
Lo que obtienes de vuelta
Cada artículo es un registro plano: título, enlace, editor y resumen:
json
[
{
"title": "SoftBank lanza un producto de ciberseguridad basado en modelos de OpenAI",
"url": "https://www.msn.com/en-in/lifestyle/style/softbank-launches-cybersecurity-product-based-on-openai-models/ar-AA25LC2i",
"source": "The Economic Times en MSN",
"snippet": "El producto \"Patching as a Service\" se lanzará en Japón a través de una empresa conjunta ..."
}
]
// El esquema refleja exactamente lo que emite la evaluación del Paso 2. Los valores de campo son ejemplos ilustrativos.
Algunas observaciones honestas:
- El conteo de resultados por página no es fijo. La primera pantalla renderizó alrededor de una docena de tarjetas; las páginas desplazadas devolvieron diez cada una. Cuenta lo que obtienes, no asumas un tamaño de página.
- Algunas tarjetas se repiten en diferentes desplazamientos. Bing reordena resultados, así que elimina duplicados por título o URL mientras paginas.
- El formato del editor varía.
data-authorsuele ser el nombre limpio, pero las historias sindicadas se leen "… en MSN"; normaliza si te basas en el editor. - Los enlaces apuntan a otros sitios. El atributo
urlse resuelve al artículo del editor, no a un redireccionamiento de Bing, lo cual es bueno para apuntar directamente a un rastreador de texto completo.
Conclusión: un feed estructurado de Bing News
Un raspador de Bing News confiable es renderizar → leer los atributos de la tarjeta → avanzar en el desplazamiento first=. Renderiza en un navegador real para que la cuadrícula exista, extrae data-title/url/data-author en lugar de desenredar el texto visible, y paginar por desplazamiento mientras eliminas duplicados. Ejecutar en Scrapeless Scraping Browser proporciona la representación de Chromium y la salida residencial que hacen que los resultados se carguen de manera consistente. Para convertir los enlaces recopilados en cuerpos de artículo completos, combina esto con un raspador de sitios construido de la misma manera; la página del producto del Scraping Browser y documentos cubren toda la superficie del SDK. Ancla la salida de EE. UU., lee los atributos y recorre el desplazamiento.
¿Listo para construir tu pipeline de datos impulsado por IA?
Únete a nuestra comunidad para reclamar un plan gratuito y conectarte con desarrolladores que construyen pipelines de noticias y búsqueda: Discord · Telegram.
Regístrate en app.scrapeless.com para obtener gratis el tiempo de ejecución del Scraping Browser y adapta los patrones anteriores a las consultas y regiones que necesites para tu monitoreo. Consulta los precios para escalar.
FAQ
P: ¿Es legal extraer información de Bing News?
Recoger resultados de búsqueda visibles públicamente es generalmente permitido, pero los Términos de Servicio de Bing y la legislación local aún se aplican a cómo almacenas y usas los datos. Extrae solo resultados públicos, respeta las reglas de robots y Términos de Servicio, y consulta a un abogado para tu caso de uso.
P: ¿Necesito un proxy?
Sí — fija proxyCountry: 'US' (o tu región objetivo). Bing localiza y limita la tasa por IP, así que un egress residencial consistente mantiene estable el conjunto de resultados y el marcado.
P: Obtengo la página pero no las tarjetas. ¿Qué pasa?
Las tarjetas son renderizadas por JavaScript. Una simple solicitud HTTP solo devuelve el contorno; carga la página en el Scraping Browser y espera a networkidle2 para que la cuadrícula esté en el DOM antes de leerla.
P: ¿Cómo obtengo más de la primera página de resultados?
Ajusta el desplazamiento first= en la URL — &first=11, &first=21, y así sucesivamente — reutilizando la misma sesión, y elimina duplicados por título ya que algunas tarjetas reaparecen en varias páginas.
P: El marcado cambió y mis selectores dejaron de funcionar. ¿Por qué?
Bing actualiza su diseño periódicamente. Revisa nuevamente los nombres de atributos de las tarjetas (data-title, url, data-author) en una página en vivo y ajusta tus selectores cuando cambian.
P: ¿Cuántas consultas paralelas puedo ejecutar?
Mantén la concurrencia moderada — tres sesiones por host es un límite seguro para ejecuciones paralelas contra el mismo sitio.
P: ¿Puedo ejecutar esto sin un agente de IA?
Sí. Es solo Puppeteer sobre la sesión de Scrapeless — no se requiere agente.
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.



