Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.4K
Views
Puppeteer.js: el contexto de ejecución se destruyó, muy probablemente debido a una navegación

Tengo un problema de código que no pude solucionar durante 2 días, aquí está mi código:

 const crawl = async () => { try { const link = 'https://www.olx.pl/nieruchomosci/mieszkania/wynajem/wroclaw/?search%5Bfilter_float_price%3Ato%5D=3000&search%5Bfilter_float_price%3Afrom%5D=1000&search%5Bfilter_enum_rooms%5D%5B0%5D=two'; const browser = await puppeteer.launch({ 'args': [ '--no-sandbox', '--disable-setuid-sandbox' ] }); const [page] = await browser.pages(); await page.goto(link); // irrelevant stuff // for (let href of correctAdverts) { let hrefChecked = await checkForPromotedAdvert(href); console.log('entering ' + href); await page.goto(href, { waitUntil: 'networkidle2', timeout: 0 }); pool.query('SELECT id FROM data WHERE href = $1', [hrefChecked], (err, res) => { if (err) { console.log(err.stack) } else if (res.rows[0]) { console.log("already in DB, " + JSON.stringify(res.rows[0])) } else { insertData(page, href) } }) } await browser.close(); } catch (err) { console.error(err); } }

Y esta es mi función insertData:

 const insertData = async (page, href) => { const olxPriceSelector = process.env.OLX_PRICE_SELECTOR; const olxAdditionalPaymentsSelector = process.env.OLX_ADDITIONAL_PAYMENTS_SELECTOR; const olxAreaSelector = process.env.OLX_PRICE_SELECTOR; const olxDistrictSelector = process.env.OLX_DISTRICT_SELECTOR; if (href.startsWith('https://www.olx.pl/d/oferta/')) { let price = await getData(page, olxPriceSelector, null); let additionalPayments = await getData(page, olxAdditionalPaymentsSelector, 'Czynsz'); let area = await getData(page, olxAreaSelector, 'Powierzchnia: '); let district = await getData(page, olxDistrictSelector, null, true); if (!district) { if (await page.$(olxDistrictSelector) !== null) { district = await page.evaluate(el => el.textContent, await page.$(olxDistrictSelector)); } else district = 'undefined'; } pool.query("INSERT INTO data (price,href,additional_payments,area,district) VALUES ($1,$2,$3,$4,$5) ON CONFLICT (href) DO NOTHING;", [price, href, additionalPayments, area, district], function () {}) } }

Y cuando lo ejecuto, aparece el error: el contexto de ejecución se destruyó, probablemente debido a una navegación. En primer lugar, pensé que page.close después del ciclo for of era el problema, pero comentarlo no parece solucionar el problema.

¿Puedes ver dónde podría estar el error?

about 4 years ago · Santiago Gelvez
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!