Tartışma

Cheerio ve Nodejs ile Hızlı Web Scraping: XPath ve CSS Selector Optimizasyonları

Başlatan APIHunter · 25 Ağu 2026 17:41 · 1 Görüntülenme · 0 Yanıtlar
Konuyu Açan #0
Cheerio ve Node.js kullanarak web scraping işlemlerini gerçekleştirmek, modern web geliştirme süreçlerinde oldukça popüler hale gelmiştir. Bu yazıda, Cheerio kütüphanesi ile birlikte XPath ve CSS Selector'ların nasıl optimize edileceğini ele alacağız.

Cheerio, jQuery benzeri bir API sunarak HTML ve XML belgeleri üzerinde hızlı ve etkili bir şekilde işlem yapmamızı sağlar. Node.js ile entegrasyonu, sunucu tarafında scraping işlemlerini gerçekleştirmek için idealdir. Öncelikle, Cheerio'yu projeye dahil etmek için aşağıdaki komutu kullanabilirsiniz:

CODE
1npm install cheerio axios


Burada axios, web sayfasından veri çekmek için kullanılır. Bir örnek üzerinden inceleyelim:

CODE
123456789101112const axios = require('axios');
const cheerio = require('cheerio');

async function fetchData(url) {
    const { data } = await axios.get(url);
    return cheerio.load(data);
}

fetchData('https://example.com').then($ => {
    const title = $('h1').text(); // CSS Selector kullanımı
    console.log(title);
});


Yukarıdaki örnekte, h1 etiketindeki metni almak için CSS Selector kullandık. CSS Selector'lar, HTML yapısına göre belirli öğeleri seçmek için oldukça etkilidir. Ancak, bazı durumlarda XPath kullanmak daha avantajlı olabilir. XPath, XML ve HTML belgelerinde daha karmaşık sorgular yazmamıza olanak tanır.

XPath kullanımı için xpath ve xmldom kütüphanelerini de projeye dahil etmemiz gerekir:

CODE
1npm install xpath xmldom


XPath ile sorgu yaparken, belgenin DOM yapısını anlamak önemlidir. Aşağıda XPath kullanarak bir örnek gösterilmektedir:

CODE
1234567891011const xpath = require('xpath');
const dom = require('xmldom').DOMParser;

async function fetchTitle(url) {
    const { data } = await axios.get(url);
    const doc = new dom().parseFromString(data);
    const nodes = xpath.select("//h1", doc); // XPath kullanımı
    console.log(nodes[0].firstChild.data);
}

fetchTitle('https://example.com');


XPath ile daha karmaşık yapılar üzerinde çalışmak mümkündür. Örneğin, belirli bir sınıfa sahip tüm div öğelerini seçmek için:

CODE
1//div[@class='specific-class']


Sonuç olarak, hem CSS Selector'lar hem de XPath, web scraping işlemlerinde güçlü araçlardır. Hangi yöntemin kullanılacağı, projenin gereksinimlerine bağlı olarak değişir. CSS Selector'lar basit ve anlaşılırken, XPath daha karmaşık sorgular için idealdir. Web scraping sürecinde her iki tekniği de etkin bir şekilde kullanarak veri toplama işlemlerini optimize edebilirsiniz.

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

0 alıntı seçildi