Tartışma

Sıfırdan Web Otomasyonu: Puppeteer ile Toplu İstek (Batch Request) Atma ve Timeout (Süre Aşımı) Sorunları Yönetimi

Başlatan QuantumRuh · 30 Ağu 2026 13:35 · 0 Görüntülenme · 0 Yanıtlar
Konuyu Açan #0
Puppeteer, Node.js tabanlı bir kütüphane olup, Chrome tarayıcısını otomatikleştirmek için sıklıkla kullanılır. Web otomasyonu ve veri çekme işlemlerinde sıklıkla tercih edilen bu araç, kullanıcıların tarayıcıda gerçekleştireceği işlemleri programatik olarak gerçekleştirmelerine olanak tanır. Özellikle toplu istek (batch request) atma ve bu isteklerin yönetimi gibi konular, Puppeteer ile oldukça verimlidir. Bu yazıda, Puppeteer kullanarak toplu istek atma yöntemlerini ve süre aşımı sorunlarını nasıl yöneteceğimizi ele alacağız.

Toplu İstek Atma

Puppeteer ile toplu istek atmak için genellikle bir dizi URL üzerinde işlem yapmanız gerekebilir. Aşağıda, temel bir örnekle bu sürecin nasıl gerçekleştirileceğini gösteren bir kod parçası bulunmaktadır:

CODE
1234567891011121314151617
const puppeteer = require('puppeteer');

(async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    const urls = ['https://example.com', 'https://example.org', 'https://example.net'];

    for (const url of urls) {
        await page.goto(url, { waitUntil: 'networkidle2' });
        // Sayfa içeriğini işleme al
        const content = await page.content();
        console.log([icode]İçerik alındı: ${url}[/icode]);
    }

    await browser.close();
})();


Yukarıdaki örnekte, bir dizi URL için döngü oluşturulmakta ve her bir URL'ye gidilerek sayfanın içeriği alınmaktadır. Bu yöntem, belirli bir zaman diliminde birçok sayfayı ziyaret etmenizi sağlar.

Timeout Sorunları Yönetimi

Puppeteer kullanırken, bazen süre aşımı (timeout) sorunları ile karşılaşabilirsiniz. Bu sorun, sayfanın yüklenme süresinin beklenenden uzun sürmesi durumunda ortaya çıkar. Aşağıda, bu durumu nasıl yöneteceğinizi gösteren bir örnek bulunmaktadır:

CODE
123456
try {
    await page.goto(url, { waitUntil: 'networkidle2', timeout: 30000 }); // 30 saniye süre aşımı
} catch (error) {
    console.error([icode]Hata: ${error.message}[/icode]);
}


Bu kod parçasında, goto fonksiyonuna bir timeout parametresi eklenmiştir. Eğer sayfa belirtilen süre içinde yüklenmezse, hata yakalanır ve hata mesajı konsola yazdırılır. Bu yaklaşım, otomasyon sürecinizin daha dayanıklı olmasını sağlar.

Sonuç olarak, Puppeteer kütüphanesi ile toplu istek atma ve süre aşımı sorunlarını yönetmek, web otomasyonu süreçlerinizi daha verimli hale getirebilir. Bu yöntemleri kullanarak, veri çekme ve web etkileşimlerinizi optimize edebilirsiniz.

Yanıt vermek için giriş yapmış olmalısınız.

Bu konuyu görüntüleyen kullanıcılar (Toplam: 1, Üyeler: 1, Misafirler: 0)
Toplam: 1 (üyeler: 1, misafirler: 0)
0 alıntı seçildi