Konuyu Açan
#0
Dinamik web sayfaları, kullanıcı etkileşimleri ve arka planda gerçekleşen veri yüklemeleri nedeniyle zaman zaman karmaşık hale gelebilir. Özellikle kripto para fiyatlarının takip edildiği bir bot geliştirirken, dinamik sayfalardan veri çekmek için toplu isteklerin (batch requests) yapılması gerekebilir. Bu yazıda, Node.js kullanarak bir kripto fiyat takip botu oluşturmanın yanı sıra, dinamik sayfa yüklenme gecikmelerini aşmanın yollarını ele alacağız.
Öncelikle, gerekli kütüphaneleri yüklemekle başlayalım.
Botumuzun temel yapısını oluştururken, dinamik sayfalardan veri çekmek için
Aşağıdaki örnek, bir kripto para borsasından toplu fiyat verisi çekmek için kullanılabilir:
Bu kod parçası, belirttiğimiz URL'deki bir kripto para listesini yükleyip fiyatları çekmektedir.
Dinamik sayfa yüklenme gecikmeleri ile başa çıkmak için şu noktaları göz önünde bulundurmak faydalıdır:
Bu yöntemler ve kod yapısı, dinamik sayfalardan veri çekmenizi ve toplu istekler gerçekleştirmenizi kolaylaştıracaktır. Kripto fiyat takip botunuzu geliştirirken bu noktaları dikkate almanız, performansı ve güvenilirliği artıracaktır.
Öncelikle, gerekli kütüphaneleri yüklemekle başlayalım.
axios ve cheerio gibi kütüphaneler, HTTP istekleri yapmak ve gelen HTML'i analiz etmek için oldukça kullanışlıdır. Aşağıdaki kod parçası, ihtiyaç duyduğumuz kütüphaneleri göstermektedir:CODE
1npm install axios cheerioBotumuzun temel yapısını oluştururken, dinamik sayfalardan veri çekmek için
axios ile istek yapacağız. Ancak, dinamik içeriklerin genellikle JavaScript ile yüklendiğini unutmamak gerekir. Bu durumda, puppeteer gibi bir tarayıcı otomasyon kütüphanesi kullanarak sayfayı tam olarak yükleyip, ardından içerikleri çekmek etkili bir yöntem olacaktır.Aşağıdaki örnek, bir kripto para borsasından toplu fiyat verisi çekmek için kullanılabilir:
CODE
12345678910111213141516171819202122const axios = require('axios');
const cheerio = require('cheerio');
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com/kripto-fiyatlar', { waitUntil: 'networkidle2' });
const content = await page.content();
const $ = cheerio.load(content);
// Örnek: Kripto fiyatlarını çekme
const prices = [];
$('.crypto-price').each((index, element) => {
const price = $(element).text();
prices.push(price);
});
console.log(prices);
await browser.close();
})();Bu kod parçası, belirttiğimiz URL'deki bir kripto para listesini yükleyip fiyatları çekmektedir.
networkidle2, sayfanın tüm ağ bağlantılarının kesildiği durumu belirterek, sayfanın tamamen yüklenmesini bekler.Dinamik sayfa yüklenme gecikmeleri ile başa çıkmak için şu noktaları göz önünde bulundurmak faydalıdır:
- Zamanlama: İşlemleri gerçekleştirmeden önce yeterli süre beklemek, sayfanın tüm içeriklerinin yüklenmesini sağlar.
- Hata Yönetimi: İsteklerin başarısız olması durumunda uygun hata yönetimi stratejileri geliştirmek, botun sürekliliğini sağlar.
- API Kullanımı: Eğer mümkünse, dinamik içerik yerine API kullanmak daha sağlıklı ve hızlı sonuçlar verebilir.
Bu yöntemler ve kod yapısı, dinamik sayfalardan veri çekmenizi ve toplu istekler gerçekleştirmenizi kolaylaştıracaktır. Kripto fiyat takip botunuzu geliştirirken bu noktaları dikkate almanız, performansı ve güvenilirliği artıracaktır.