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

182
Vistas
Accediendo a la tabla n y contando filas con el titiritero en el error de javascript: "no se pudo encontrar el selector de coincidencia de elementos" tabla: n de tipo (2)> tr ""

Estoy tratando de contar mediante programación las filas en las tablas de la página https://rarity.tools/upcoming/ en javascript. Dado que el sitio se carga a través de javascript, he estado usando titiritero. El sitio tiene varias tablas (4 en total) y me gustaría poder hacer referencia a cada tabla y verificar cuántas filas tienen.

Intenté usar nth-of-type para seleccionar la segunda, tercera y cuarta tabla, pero recibo el error:

"Error: Error: no se pudo encontrar el selector de coincidencia de elementos "tabla: enésima de tipo (2)> tr""

Eliminar > tr devuelve un error similar:

"Error: Error: no se pudo encontrar el selector de coincidencia de elementos "tabla: enésima de tipo (2)""

También he intentado usar nth-child.

Código:

 const puppeteer = require('puppeteer'); let fetch = async () => { try { // Puppeteer initialization const browser = await puppeteer.launch({ headless: true, defaultViewport: null }); const [page] = await browser.pages(); await page.goto('https://rarity.tools/upcoming/'); await page.waitForTimeout(2500) // Timeout so page can load actual content const numTables = await page.$$eval('table', el => el.length) - 1; // Rarity.tools has a table for each month of data. Each table must be looped through. // There is an extra table for upcoming "To Be Announced", there is a -1 to subtract that table from tables being looped through. for (let j = 1; j < numTables + 1; j++) { const tableLength = await page.$eval(`table:nth-of-type(${j}) > tr`, el => el.length) console.log(tableLength) } } catch (error) { console.log(error) } } fetch();

Utilizar lo siguiente en su lugar no devuelve un error, sino que devuelve 0 para la segunda y tercera tabla, aunque puedo ver que el HTML del sitio que estoy raspando tiene filas de tabla debajo de la segunda y tercera tabla.

 const tableLength = await page.$$eval(`table:nth-of-type(${j}) > tr`, el => el.length)

Sin embargo, el código anterior con $$eval devuelve el valor correcto para la primera tabla.

Por favor, hágamelo saber si necesito proporcionar más información.

about 4 years ago · Juan Pablo Isaza
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