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

507
Vistas
¿Por qué phantomJS 2.1.1 muestra esta página como color de fondo sin contenido, pero foxshot 1.2.0 la muestra correctamente?

Me gusta hacer un seguimiento de los resultados de la lotería de Massachusetts (asegúrate de que los resultados sean realmente aleatorios). Puedo abrir la página de resultados en cualquier navegador y copiar y pegar las líneas de texto, y ejecutar el texto a través de un filtro escrito en php o gawk para extraer los números de cada fecha. Pero pensé que sería mejor automatizar el proceso usando phantomJS para obtener las fechas y los números directamente del DOM.

No he podido hacer que esto funcione porque los elementos que contienen los resultados no parecen estar en el DOM accesible a través de phantomJS. No sé si estoy haciendo algo mal (probablemente lo estoy) o si es un problema con phantomJS (que sé que ya no se mantiene). Pero también intenté usar el ejemplo de renderizar una URL en una imagen .png directamente desde el ejemplo de Carga de página en el inicio rápido , y la imagen apareció como color de fondo sin texto, así que creo que es un problema con phantomJS. ¿O ese ejemplo necesita algún código adicional para esperar a que se completen todos los scripts incluidos?

Aquí está el javascript de ejemplo con la URL en cuestión y el nombre de archivo de la imagen cableado:

 var page = require('webpage').create(); page.open('https://www.masslottery.com/tools/past-results/mega-millions?start_date=2021-09-03&end_date=2021-09-28', function(status) { console.log("Status: " + status); if(status === "success") { page.render('example.png'); } phantom.exit(); });

Ejecutar phantomjs en el javascript anterior produce este archivo llamado ejemplo.png de la siguiente manera: ejemplo.png

Pero al ejecutar foxshot veo lo siguiente:

 $ foxshot 'https://www.masslottery.com/tools/past-results/mega-millions?start_date=2021-09-03&end_date=2021-09-28' no valid dimensions provided, defaulting to 1024x768 loading site... 1024x768

Y produce un archivo llamado screenshot_1024x768.png de la siguiente manera: captura de pantalla_1024x768.png

Por supuesto, foxshot no proporciona una forma de acceder al DOM o acceder al texto que se muestra en la imagen. ¿Alguna sugerencia?

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

0

Va así con titiritero

 //npm i puppeteer const puppeteer = require('puppeteer') !(async () => { //open browser const browser = await puppeteer.launch() //open browser page const page = await browser.newPage() //open url await page.goto('https://www.masslottery.com/tools/past-results/mega-millions?start_date=2021-09-03&end_date=2021-09-28') //wait for table to appear await page.waitForSelector('.multi-col-stacking-table') //iterate over table rows on page const data = await page.$$eval('.multi-col-stacking-table tbody tr', d => d.map(d => ({ //format date as YYYY-MM-DD date: new Date(d.querySelector('.past-results-row-draw-date').innerText).toJSON().slice(0, 10), //collect winning numbers winningNumber: Array.from(d.querySelectorAll('.winning-number-ball-circle, .winning-number-ball-circle-no-border')).map(d => +d.innerText), //get multiplier as number multiplier: +d.querySelector('.winning-number-ball-multiplier').innerText.slice(0, -1), //parse jackpot into number - remove all non-digits and multiply by 1M jackpot: +d.querySelector('.jackpot').innerText.replace(/[^\d]/g, '') * 1e6 })) ) console.log(data) //optional screenshot await page.screenshot({path: 'screenshot.png'}) await browser.close() })() //output /* [ { date: '2021-09-27', winningNumber: [ 18, 30, 43, 68, 69, 22 ], multiplier: 4, jackpot: 22000000 }, { date: '2021-09-23', winningNumber: [ 17, 21, 27, 43, 56, 15 ], multiplier: 3, jackpot: 20000000 }, ... ] */
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