diff --git a/backend/src/tools/koepi/routes.js b/backend/src/tools/koepi/routes.js index b941cac..a31bb3e 100644 --- a/backend/src/tools/koepi/routes.js +++ b/backend/src/tools/koepi/routes.js @@ -64,7 +64,13 @@ async function scrapeMarktguru() { await page.goto('https://www.marktguru.de/search/k%C3%B6nig%20pilsener?zipCode=47259', { waitUntil: 'networkidle2', timeout: 30000, }); - await new Promise(r => setTimeout(r, 4000)); + // Warte bis alle Bilder geladen sind + await page.evaluate(() => Promise.all( + Array.from(document.querySelectorAll('img.offer-list-item-img')).map(img => + img.complete ? Promise.resolve() : new Promise(r => { img.onload=r; img.onerror=r; setTimeout(r,5000); }) + ) + )).catch(() => {}); + await new Promise(r => setTimeout(r, 2000)); const offers = await page.evaluate(() => { // Exakte Selektoren basierend auf marktguru HTML-Struktur diff --git a/frontend/src/tools/koepi.jsx b/frontend/src/tools/koepi.jsx index 37dafa6..6b15de5 100644 --- a/frontend/src/tools/koepi.jsx +++ b/frontend/src/tools/koepi.jsx @@ -36,9 +36,9 @@ function OfferCard({ offer }) { }}> {/* Bild oben, volle Breite */} {offer.image && ( -
+
König Pilsener { e.target.parentElement.style.display='none'; }} />