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', {
|
await page.goto('https://www.marktguru.de/search/k%C3%B6nig%20pilsener?zipCode=47259', {
|
||||||
waitUntil: 'networkidle2', timeout: 30000,
|
waitUntil: 'networkidle2', timeout: 30000,
|
||||||
});
|
});
|
||||||
// Warte bis alle Bilder geladen sind
|
// Seite nach unten scrollen damit lazy-loaded Bilder geladen werden
|
||||||
await page.evaluate(() => Promise.all(
|
await page.evaluate(async () => {
|
||||||
Array.from(document.querySelectorAll('img.offer-list-item-img')).map(img =>
|
await new Promise(resolve => {
|
||||||
img.complete ? Promise.resolve() : new Promise(r => { img.onload=r; img.onerror=r; setTimeout(r,5000); })
|
let totalHeight = 0;
|
||||||
)
|
const distance = 300;
|
||||||
)).catch(() => {});
|
const timer = setInterval(() => {
|
||||||
await new Promise(r => setTimeout(r, 2000));
|
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(() => {
|
const offers = await page.evaluate(() => {
|
||||||
// Exakte Selektoren basierend auf marktguru HTML-Struktur
|
// Exakte Selektoren basierend auf marktguru HTML-Struktur
|
||||||
|
|||||||
Reference in New Issue
Block a user