Thread Starter
#0
Puppeteer, Google tarafından geliştirilen ve Chromium tarayıcısını otomatikleştirmek için kullanılan bir kütüphanedir. Bu araç, JavaScript ile yazılmış olup, özellikle web sayfalarını tarayıp veri çekmek için oldukça kullanışlıdır. Dinamik fiyat takip botu yazmak istediğinizde, Puppeteer ile yapacaklarınız kesinlikle çok keyifli bir süreç olacak. Başlangıç olarak, Puppeteer'ı projenize dahil etmek için npm ile kurulum yapmanız gerekecek. Terminalde `npm install puppeteer` komutunu çalıştırarak başlayabilirsiniz. Böylece Puppeteer kütüphanesi projenize dahil edilmiş olacak.
Bir sonraki adım, botunuzun hangi sayfaları ziyaret edeceğini belirlemek. Örneğin, bir e-ticaret sitesindeki ürün fiyatlarını takip etmek istiyorsanız, bu ürünlerin bulunduğu sayfaların URL'lerini belirlemelisiniz. Puppeteer ile bir sayfayı açmak için `const page = await browser.newPage();` komutunu kullanabilirsiniz. Sonrasında `await page.goto('https://site.com/urun');` ile istediğiniz sayfayı ziyaret edebilirsiniz. Unutmayın, her sayfanın yüklenmesi biraz zaman alabilir, bu nedenle `await page.waitForSelector('.fiyat');` gibi bir komut ile sayfanın fiyat bilgisi yüklendikten sonra işlem yapmayı beklemek mantıklı bir yaklaşım olacaktır.
Fiyat bilgisini çekmek için, sayfadaki ilgili HTML elemanını tanımlamak gerekiyor. Örneğin, fiyat bilgisi genellikle bir `span` veya `div` içinde yer alır. Bu durumda, `const fiyat = await page.$eval('.fiyat', el => el.innerText);` komutuyla fiyatı alabiliriz. Burada dikkat etmeniz gereken nokta, seçtiğiniz CSS seçicisinin doğru olması. Yanlış bir seçici kullanırsanız, botunuz beklenen fiyatı çekemeyecek ve hata verecektir. Eğer sayfa dinamik olarak güncelleniyorsa, belirli aralıklarla fiyatı kontrol etmek de iyi bir fikir. Bunu, `setInterval` fonksiyonu ile gerçekleştirebilirsiniz.
Aldığınız fiyat bilgisini saklamak da önemli. Bunun için bir veri tabanı tercih edebilirsiniz. Örneğin, MongoDB gibi NoSQL bir veri tabanı kullanarak fiyatları kaydedebilir ve tarihçesini tutabilirsiniz. Fiyat değişikliklerini takip etmek için, önceki değerle karşılaştırma yaparak bir değişiklik olup olmadığını kontrol edebilirsiniz. Eğer değişiklik varsa, bu durumu bir bildirim sistemi ile kullanıcıya iletmek oldukça kullanıcı dostu bir yaklaşım olacaktır. Mesela, fiyat düştüğünde bir e-posta göndermek gibi…
Son olarak, botunuzun çalışmasını düzenli olarak kontrol etmek de önemli. Puppeteer ile oluşturduğunuz botun düzenli olarak çalıştığından emin olmak için, bir sunucu üzerinde çalıştırmayı düşünebilirsiniz. Bu, botun sürekli açık kalmasını ve fiyatları sürekli takip etmesini sağlar. Ayrıca, botunuzu çalıştırdığınız makinenin internet bağlantısının stabil olması, botunuzun verimli çalışması açısından büyük bir avantaj olacaktır. İşte bu kadar! Puppeteer ile dinamik fiyat takip botu yazmak hem eğlenceli hem de öğretici bir deneyim sunuyor. Denemekten çekinmeyin…
Bir sonraki adım, botunuzun hangi sayfaları ziyaret edeceğini belirlemek. Örneğin, bir e-ticaret sitesindeki ürün fiyatlarını takip etmek istiyorsanız, bu ürünlerin bulunduğu sayfaların URL'lerini belirlemelisiniz. Puppeteer ile bir sayfayı açmak için `const page = await browser.newPage();` komutunu kullanabilirsiniz. Sonrasında `await page.goto('https://site.com/urun');` ile istediğiniz sayfayı ziyaret edebilirsiniz. Unutmayın, her sayfanın yüklenmesi biraz zaman alabilir, bu nedenle `await page.waitForSelector('.fiyat');` gibi bir komut ile sayfanın fiyat bilgisi yüklendikten sonra işlem yapmayı beklemek mantıklı bir yaklaşım olacaktır.
Fiyat bilgisini çekmek için, sayfadaki ilgili HTML elemanını tanımlamak gerekiyor. Örneğin, fiyat bilgisi genellikle bir `span` veya `div` içinde yer alır. Bu durumda, `const fiyat = await page.$eval('.fiyat', el => el.innerText);` komutuyla fiyatı alabiliriz. Burada dikkat etmeniz gereken nokta, seçtiğiniz CSS seçicisinin doğru olması. Yanlış bir seçici kullanırsanız, botunuz beklenen fiyatı çekemeyecek ve hata verecektir. Eğer sayfa dinamik olarak güncelleniyorsa, belirli aralıklarla fiyatı kontrol etmek de iyi bir fikir. Bunu, `setInterval` fonksiyonu ile gerçekleştirebilirsiniz.
Aldığınız fiyat bilgisini saklamak da önemli. Bunun için bir veri tabanı tercih edebilirsiniz. Örneğin, MongoDB gibi NoSQL bir veri tabanı kullanarak fiyatları kaydedebilir ve tarihçesini tutabilirsiniz. Fiyat değişikliklerini takip etmek için, önceki değerle karşılaştırma yaparak bir değişiklik olup olmadığını kontrol edebilirsiniz. Eğer değişiklik varsa, bu durumu bir bildirim sistemi ile kullanıcıya iletmek oldukça kullanıcı dostu bir yaklaşım olacaktır. Mesela, fiyat düştüğünde bir e-posta göndermek gibi…
Son olarak, botunuzun çalışmasını düzenli olarak kontrol etmek de önemli. Puppeteer ile oluşturduğunuz botun düzenli olarak çalıştığından emin olmak için, bir sunucu üzerinde çalıştırmayı düşünebilirsiniz. Bu, botun sürekli açık kalmasını ve fiyatları sürekli takip etmesini sağlar. Ayrıca, botunuzu çalıştırdığınız makinenin internet bağlantısının stabil olması, botunuzun verimli çalışması açısından büyük bir avantaj olacaktır. İşte bu kadar! Puppeteer ile dinamik fiyat takip botu yazmak hem eğlenceli hem de öğretici bir deneyim sunuyor. Denemekten çekinmeyin…