Merhaba Webkolog takipçileri! Bugünkü makalemde, bir web sayfasının HTML içeriğini ayrıştırmak (parse etmek) ve belirli elementlere erişmek için kullanılan güçlü bir araç olan Simple HTML DOM Parser kütüphanesini anlatacağım. Bu kütüphane sayesinde, web sitelerinden veri kazıma (web scraping), içerik analizi ve otomasyon gibi birçok işlemi kolayca gerçekleştirebiliriz. Bu makale, PHP 5.2 ve üzeri versiyonlarda çalışan kütüphanenin temel özelliklerine odaklanacak.
Simple HTML DOM Parser Nedir?
Simple HTML DOM Parser, bir web sayfasının HTML kodunu alır ve onu bir nesne ağacına dönüştürür. Bu ağaç yapısı sayesinde, HTML elementlerine CSS seçicileri gibi kolay ve anlaşılır bir sözdizimiyle erişebilir, içeriklerini okuyabilir, değiştirebilir ve silebiliriz. Bu kütüphane, PHP'nin standart kütüphanelerine dahil değildir, bu yüzden harici bir dosya olarak projemize dahil etmemiz gerekir.
Kütüphaneyi kullanmaya başlamadan önce, php.ini
dosyasında allow_url_fopen
ayarının true
veya on
olarak ayarlandığından emin olmalısınız. Bu ayar, PHP'nin uzak URL'lerden dosya okumasına izin verir.
Kurulum ve Kullanım
Kütüphaneyi kullanmak için öncelikle Simple HTML DOM Parser'ın en güncel sürümünü indirip, simple_html_dom.php
dosyasını projenizin ana dizinine kopyalamanız yeterlidir. Ardından, kullanmak istediğiniz PHP dosyasının en üstüne include 'simple_html_dom.php';
satırını ekleyerek kütüphaneyi dahil edebilirsiniz.
<?php
// Kütüphaneyi dahil et
include 'simple_html_dom.php';
?>
Kütüphaneyi dahil ettikten sonra, HTML içeriğini yüklemek için üç farklı yöntem kullanabiliriz:
str_get_html()
: Bir string içindeki HTML kodunu ayrıştırmak için.file_get_html('http://...')
: Uzak bir URL'den HTML içeriğini çekmek için.file_get_html('dosya.html')
: Yerel bir HTML dosyasını okumak için.
Örnek Kullanım: Webkolog Ana Sayfasından Veri Çekme
Şimdi, file_get_html()
fonksiyonu ile Webkolog ana sayfasını okuyalım ve sayfa başlığını ve ilk paragrafı ekrana yazdıralım.
<?php
include 'simple_html_dom.php';
// Webkolog ana sayfasını yükle
$html = file_get_html('http://webkolog.net');
if($html) {
// Sayfa başlığını bul ve metin içeriğini al
$baslik = $html->find('title', 0);
if ($baslik) {
echo "Sayfa Başlığı: " . $baslik->plaintext . "<br>";
}
// İlk paragrafı bul ve dış HTML kodunu yazdır
$ilk_paragraf = $html->find('p', 0);
if ($ilk_paragraf) {
echo "İlk paragraf: " . $ilk_paragraf->outertext;
}
// Belleği serbest bırak
$html->clear();
unset($html);
} else {
echo "Web sayfası yüklenemedi.";
}
?>
Bu örnekte, find()
metodu ile önce <title>
ve <p>
etiketlerini aradık. İkinci parametre olarak verdiğimiz 0
, bulunan ilk elemanı almamızı sağladı. plaintext
ile sadece metin içeriğine, outertext
ile ise etiketin kendisi dahil tüm içeriğine eriştik. İşimiz bittiğinde clear()
ve unset()
kullanarak belleği boşaltmayı unutmadık.
Gelişmiş Seçiciler ve Özellikler
Simple HTML DOM Parser, CSS seçicilerine benzer şekilde daha gelişmiş arama yetenekleri sunar:
<?php
include 'simple_html_dom.php';
$html = file_get_html('http://webkolog.net');
// id'si "menu" olan div içindeki tüm bağlantıları bul
foreach($html->find('div#menu a') as $link) {
echo $link->href . '<br>';
}
// class'ı "uyari" olan span etiketlerini bul
$uyarilar = $html->find('span.uyari');
// "data-id" özelliği 10 olan bir elemanı bul
$eleman = $html->find('[data-id=10]', 0);
// İlk bağlantının "href" özelliğine eriş
$ilk_link = $html->find('a', 0);
echo $ilk_link->href;
?>
Bu örnekler, farklı seçicileri kullanarak HTML ağacında nasıl gezinebileceğimizi gösteriyor. $link->href
gibi sihirli özellikler sayesinde etiketlerin niteliklerine (attribute) kolayca erişebiliyoruz.
Simple HTML DOM Parser, özellikle PHP 5.2 gibi eski versiyonlarda web kazıma ve veri işleme işlerinizi büyük ölçüde kolaylaştırır. Umarım bu makale, projelerinizde bu kütüphaneyi kullanmak için size bir başlangıç noktası sunar.
Webkolog'u takipte kalın!
Hepinize bol kodlu ve başarılı projeler dilerim!
0 yorum:
Yorum Gönder