Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

108
Visualizações
Cargando html en Chrome seguido de la instancia jsdom

Estoy raspando un poco después de recibir html de una API. Me gustaría hacer lo siguiente:

  1. Abra la página html en Chrome para que pueda encontrar selectores en la consola.
  2. Cargue inmediatamente la misma página html en una instancia jsdom
  3. Ingrese al repl: luego puedo encontrar los selectores correctos en la consola y probarlos en un entorno jsdom en vivo para ver si funcionan.

Para 1, tengo:

 async function openHtml(htmlString) { const browser = await puppeteer.launch({headless: false}); const page = await browser.newPage(); await page.setContent(htmlString); return; // await browser.close(); }

El código proporcionado con la API es:

 var req = http.request(options, function (res) { var chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { var body = Buffer.concat(chunks); response = JSON.parse(body); //response.content = html, response.cookies = cookies const dom = new JSDOM(response.content); console.log(dom.window.document.querySelector("p").textContent); // "Hello world" openHtml(response.content); console.log('hi'); }); }); req.end();

Si ejecuto el código en la línea de comando, el navegador se abre como se esperaba. Sin embargo, si configuro un punto de interrupción en:

 console.log('hi');

No es asi. ¿Cómo puedo hacer que esto funcione?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

openHtml es una función asíncrona. Por lo tanto, deberá configurar el método que llama en espera (promesa) y la función principal también en asíncrono.

 var req = http.request(options, function (res) { var chunks = [] res.on('data', function (chunk) { chunks.push(chunk) }) res.on('end', async function () { var body = Buffer.concat(chunks) response = JSON.parse(body) //response.content = html, response.cookies = cookies const dom = new JSDOM(response.content) console.log(dom.window.document.querySelector('p').textContent) // 'Hello world' await openHtml(response.content) console.log('hi') }) }) req.end()
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda