fix: KöPi - Scrollen für lazy-loaded Bilder
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user