fix: KöPi - Scrollen für lazy-loaded Bilder

This commit is contained in:
2026-07-09 14:51:08 +02:00
parent 810c7455fe
commit 0ba26c36ca

View File

@@ -64,13 +64,22 @@ async function scrapeMarktguru() {
await page.goto('https://www.marktguru.de/search/k%C3%B6nig%20pilsener?zipCode=47259', {
waitUntil: 'networkidle2', timeout: 30000,
});
// 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));
// Seite nach unten scrollen damit lazy-loaded Bilder geladen werden
await page.evaluate(async () => {
await new Promise(resolve => {
let totalHeight = 0;
const distance = 300;
const timer = setInterval(() => {
window.scrollBy(0, distance);
totalHeight += distance;
if (totalHeight >= document.body.scrollHeight) {
clearInterval(timer);
resolve();
}
}, 200);
});
});
await new Promise(r => setTimeout(r, 3000));
const offers = await page.evaluate(() => {
// Exakte Selektoren basierend auf marktguru HTML-Struktur