JavaScript ile Web Scraping: Temel Rehber

Web scraping, bir web sitesinden otomatik olarak veri çekme işlemidir. JavaScript, Node.js'in sağladığı birçok kütüphane sayesinde bu işlem için oldukça uygun bir dil. Özellikle axios ve cheerio gibi kütüphaneler bu iş için sıkça kullanılır.

⚠️ Not: Web scraping yapmadan önce, hedeflenen web sitesinin 'Kullanım Şartları'nı okuyun. Her web sitesinin scraping'e izin vermediğini unutmayın.

Gereksinimler

  • Node.js kurulu bir sistem
  • Temel HTML ve JavaScript bilgisi

Kütüphanelerin Kurulması

npm install axios cheerio

Temel Örnek

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

const url = 'https://example.com';

axios.get(url)
.then(response => {
const html = response.data;
const $ = cheerio.load(html);
const siteHeading = $('h1'); // HTML içindeki ilk 'h1' etiketini seç

console.log(siteHeading.text());
})
.catch(console.error);

Bu örnek, https://example.com adresine bir GET isteği gönderir ve ilk h1 etiketinin içeriğini ekrana yazdırır.

Özellikleri

Veri Seçme

cheerio jQuery benzeri seçiciler sunar. Örneğin:

$('h1').text(); // İlk h1 etiketinin metnini alır
$('.class').attr('id'); // class adı 'class' olan ilk elementin id atribütünü alır

Döngüler

Birden fazla elementi işlemek için döngüler kullanabilirsiniz.

$('li').each((index, element) => {
const item = $(element).text();
console.log(item);
});

Dinamik İçerik

Dinamik olarak oluşturulan içerik için puppeteer gibi bir kütüphane daha uygun olacaktır.

Tamamlanmış Örnek


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

async function fetchItems() {
try {
const { data } = await axios.get('https://example.com/items');
const $ = cheerio.load(data);

$('li.item').each((i, element) => {
const title = $(element).find('.title').text();
const price = $(element).find('.price').text();

console.log(`${title} - ${price}`);
});
} catch (error) {
console.error(`Error: ${error}`);
}
}

fetchItems();

Bu örnek, https://example.com/items adresindeki ürünlerin isimlerini ve fiyatlarını çeker.

Önemli Notlar

  • Web scraping'in yasal sınırlarını aşmamaya dikkat edin.
  • Web sitelerinin kullanım koşullarını okuyun ve izin alın.
  • Yoğun bir şekilde scraping yaparken, sitenin sunucularına zarar vermeyecek şekilde davranın (örneğin, rate limiting kullanın).

Bu rehber, JavaScript ile web scraping yapmanın temel adımlarını açıklar. İlgilendiğiniz projeye göre daha detaylı ve karmaşık senaryolar da mümkündür.