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

270
Visualizações
Pergamino infinito con titiritero

Estoy tratando de raspar los datos de esta página . La página tiene desplazamiento infinito dentro de un elemento en el DOM. Tengo la siguiente secuencia de comandos de puppeteer para desplazarme hasta el final para revelar todos los datos para que pueda rasparlos. La primera llamada page.evaluate funciona como se esperaba, desplazándose hasta la parte inferior y revelando el contenido adicional. Sin embargo, las llamadas posteriores no funcionan. He intentado usar await page.waitFor(2000); esperar antes de poder desplazarme más, pero parece que no funciona. ¡Ayuda a alguien!

 // this script parses the data from http://covid.rcmedicrew.org/ using their /scripts/getSearch.php API // install nodejs then npm install axios const puppeteer = require('puppeteer'); const siteURL = "https://www.powerbi.com/view?r=eyJrIjoiOTcyM2JkNTQtYzA5ZS00MWI4LWIxN2UtZjY1NjFhYmFjZDBjIiwidCI6ImQ1ZmE3M2I0LTE1MzgtNGRjZi1hZGIwLTA3NGEzNzg4MmRkNiJ9"; async function callPowerBiApi(apiUrl) { const browser = await puppeteer.launch({headless: false, args: ['--auto-open-devtools-for-tabs']}); // const browser = await puppeteer.launch({headless: false}); const page = await browser.newPage(); page.setDefaultNavigationTimeout(0); await page.goto(apiUrl, {waitUntil: 'networkidle0', timeout: 0}); await page.waitForSelector('.innerContainer'); await page.evaluate(() => document.querySelectorAll(".innerContainer")[1].querySelector(".bodyCells>div>div div:last-child").scrollIntoView()); //await page.waitFor(2000); await page.evaluate(() => document.querySelectorAll(".innerContainer")[1].querySelector(".bodyCells>div>div div:last-child").scrollIntoView()); await page.evaluate(() => document.querySelectorAll(".innerContainer")[1].querySelector(".bodyCells>div>div div:last-child").scrollIntoView()); await page.evaluate(() => document.querySelectorAll(".innerContainer")[1].querySelector(".bodyCells>div>div div:last-child").scrollIntoView()); await page.evaluate(() => document.querySelectorAll(".innerContainer")[1].querySelector(".bodyCells>div>div div:last-child").scrollIntoView()); await page.evaluate(() => document.querySelectorAll(".innerContainer")[1].querySelector(".bodyCells>div>div div:last-child").scrollIntoView()); }()
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Estaba desplazándome al elemento incorrecto, lo arreglé usando:

 await page.evaluate(() => document.querySelectorAll(".innerContainer")[1] .querySelector(".bodyCells>div div:last-of-type div:last-of-type div:last-of-type") .scrollIntoView() );

Sin embargo, parece que los resultados anteriores se borran cuando se desplaza hacia abajo, por lo que necesitará otra estrategia para rasparlo todo.

over 4 years ago · Santiago Trujillo 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