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

328
Vistas
¿Cómo puedo usar jQuery con Puppeteer?

Entonces, estoy usando Puppeteer (un navegador sin cabeza) para rastrear un sitio web, y cuando accedo a esa URL, ¿cómo puedo cargar jQuery para usarlo dentro de mi función page.evaluate()?

Todo lo que tengo ahora es un archivo .js y estoy ejecutando el siguiente código. Va a mi URL según lo previsto hasta que aparece un error en page.evaluate() ya que parece que no está cargando jQuery como pensé que lo haría desde el código en la línea 7: await page.addScriptTag({url: 'https://code.jquery.com/jquery-3.2.1.min.js'})

¿Alguna idea de cómo puedo cargar jQuery correctamente aquí, para poder usar jQuery dentro de mi función page.evaluate()?

 (async() => { let url = "[website url I'm scraping]" let browser = await puppeteer.launch({headless:false}); let page = await browser.newPage(); await page.goto(url, {waitUntil: 'networkidle2'}); // code below doesn't seem to load jQuery, since I get an error in page.evaluate() await page.addScriptTag({url: 'https://code.jquery.com/jquery-3.2.1.min.js'}) await page.evaluate( () => { // want to use jQuery here to do access DOM var classes = $( "td:contains('Lec')") classes = classes.not('.Comments') classes = classes.not('.Pct100') classes = Array.from(classes) }); })();
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Tu estás en el camino correcto.

Además, no veo que se use ningún código jQuery en su función de evaluate . No hay función document.getElement .

La mejor manera sería agregar una copia local de jQuery para evitar errores de origen cruzado.

Se pueden encontrar más detalles en la pregunta ya respondida aquí .

ACTUALIZACIÓN: probé un pequeño fragmento para probar jquery. La versión del titiritero es la 10.4.0.

 (async () => { const browser = await puppeteer.launch({headless:false}); const page = await browser.newPage(); await page.goto('https://google.com',{waitUntil: 'networkidle2'}); await page.addScriptTag({path: "jquery.js"}) await page.evaluate( () => { let wrapper = $(".L3eUgb"); wrapper.css("background-color","red"); }) await page.screenshot({path:"hello.png"}); await browser.close(); })();

La captura de pantalla es

imagen del titiritero

Entonces, el código jquery definitivamente está funcionando.

Compruebe también si el sitio web del host aún no tiene una instancia de jQuery. En ese caso, necesitaría usar jquery noConflict

 $.noConflict();
about 4 years ago · Juan Pablo Isaza Denunciar

0

¡Arreglado!

Me di cuenta de que olvidé incluir el código donde hice algunos clics de navegación adicionales después de ir a mi URL inicial, por lo que el problema fue agregar la etiqueta de secuencia de comandos a mi URL inicial en lugar de después de navegar a mi URL de destino final.

También necesitaba usar

 await page.waitForNavigation({waitUntil: 'networkidle2'})

antes de agregar la etiqueta del script para que la página se cargara por completo antes de agregar el script.

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