Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

462
Vistas
Titiritero: desplácese hasta el final de un div

Estoy tratando de obtener todos los enlaces en el div "Notas y referencias" en esta página:

https://fr.wikipedia.org/wiki/Barack_Obama

pero parece que no tengo el selector adecuado. Intenté esto pero no funcionó:

 const scrollable_section = '#mw-content-text > div.mw-parser-output > div.reference-cadre' await page.evaluate(selector => { const element = document.querySelector(selector); element.scrollTop = element.offsetHeight; }, scrollable_section);

¿Puede alguien ayudarme?

Soy nuevo en Puppeteer, por lo que podría necesitar más explicaciones.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El hecho de que el elemento sea desplazable no significa que realmente necesite desplazarse para obtener los datos. Por lo general, solo para las fuentes dinámicas impulsadas por JS es necesario jugar con el desplazamiento.

En este caso, los datos están disponibles de forma estática, por lo que, a menos que esté usando Puppeteer por alguna otra razón, podría hacerlo con un combo Axios/Cheerio más simple y probablemente más rápido.

Aún mejor es usar la API de Wikipedia en lugar de raspar los datos. Si raspa, respete sus límites para robots.

Continuando con Puppeteer, Wikipedia tiene estructuras de página extrañas que no anidan secciones. Después de seleccionar #Notes_et_références , puede aparecer en el padre <h2> , luego iterar un par de nodos hermanos hacia adelante hasta que esté en el elemento .reference-cadre (codifiqué esta relación, pero podría hacerla más dinámica con un bucle si estar un poco más preparado para el futuro es un objetivo).

 const puppeteer = require("puppeteer"); let browser; (async () => { browser = await puppeteer.launch({headless: true}); const [page] = await browser.pages(); const url = "https://fr.wikipedia.org/wiki/Barack_Obama"; await page.goto(url); const links = await page.evaluate(() => [...document.querySelector("#Notes_et_références") .parentNode .nextElementSibling .nextElementSibling .querySelectorAll("a")] .map(e => e.getAttribute("href")) ); console.log(links.length, links.slice(0, 5)); })() .catch(err => console.error(err)) .finally(() => browser?.close()) ;

Producción:

 809 [ '#cite_ref-prononciation_1-0', '#cite_ref-prononciation_1-1', '/wiki/Prononciation_de_l%27anglais', '/wiki/Anglais_am%C3%A9ricain', '/wiki/Transcription_phon%C3%A9tique' ]
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda