Makalemize başlamadan önce; örnek olarak www.site_adı.com.tr adresini referans alacağız.
Web Scraping Nedir?
Web scraping, bir web sitesinden otomatik olarak veri çekme işlemidir. Bu işlem, genellikle bir web sayfasının HTML içeriğini analiz ederek belirli bilgileri çıkarmak için kullanılır. PHP gibi programlama dilleri, bu tür işlemleri gerçekleştirmek için çeşitli fonksiyonlar sunar.
PHP ile Web Scraping
Aşağıda, www.site_adı.com.tr adresinden belirli bir resim kaynağını çekmek için kullanılacak bir PHP kodu örneği bulunmaktadır.
Kod Örneği:
Kod: Tümünü seç
<?php
// Hedef web sitesi
$siteadi = "www.site_adı.com.tr"; // Burada hedef web sitesinin adresini tanımlıyoruz
// Web sayfasının içeriğini alıyoruz
$site = file_get_contents("http://$siteadi"); // file_get_contents() fonksiyonu ile sayfanın içeriğini çekiyoruz
// Belirli bir img etiketini bulmak için içeriği parçalıyoruz
$title = explode('<img src="img/pr/1/pr', $site); // '<img src="img/pr/1/pr' dizesini kullanarak parçalama yapıyoruz
// İkinci parçayı alarak, resim dosyasının adını buluyoruz
$title = explode('.gif"', $title[1]); // '.gif"' dizesine kadar olan kısmı alıyoruz
// Elde edilen resim dosyasının adını ekrana bastırıyoruz
echo $title[0]; // Sonuç olarak resim dosyasının adını ekrana yazdırıyoruz
?>
1.Hedef Web Sitesi:
Kod: Tümünü seç
$siteadi = "www.site_adı.com.tr";
2.Web Sayfasının İçeriğini Alma:
Kod: Tümünü seç
$site = file_get_contents("http://$siteadi");
3.İçeriği Parçalama:
Kod: Tümünü seç
$title = explode('<img src="img/pr/1/pr', $site);
4.Resim Dosyasının Adını Bulma:
Kod: Tümünü seç
$title = explode('.gif"', $title[1]);
5.Sonucu Ekrana Bastırma:
Kod: Tümünü seç
echo $title[0];
Dikkat Edilmesi Gerekenler
1.Yasal Durum:
Web scraping yaparken, hedef web sitesinin kullanım şartlarına ve yasalara uymak önemlidir. Bazı siteler, içeriklerinin izinsiz çekilmesini yasaklayabilir.
2.Performans:
Çok sayıda istek göndermek, hedef web sitesinin sunucusuna yük bindirebilir. Bu nedenle, scraping işlemlerini dikkatli bir şekilde ve makul bir hızda gerçekleştirmek önemlidir.
3.Hata Yönetimi:
Gerçek uygulamalarda, file_get_contents() gibi fonksiyonların başarısız olabileceği durumlar için hata yönetimi eklemek iyi bir uygulamadır.
Sonuç olarak ;
Bu makalede, PHP kullanarak bir web sitesinden içerik çekme ve belirli bir resim kaynağını bulma işlemini ele aldık. Örnek kod, temel bir web scraping işlemini göstermektedir. Şimdi, bu süreci daha da derinlemesine inceleyelim ve bazı ek özellikler ekleyelim.
Gelişmiş Özellikler
1.Hata Yönetimi:
Web scraping işlemleri sırasında, hedef web sitesine erişim sorunları veya içerik değişiklikleri gibi durumlarla karşılaşabilirsiniz. Bu nedenle, hata yönetimi eklemek önemlidir. Aşağıda, file_get_contents() fonksiyonunun başarısız olması durumunda bir hata mesajı gösteren bir örnek bulunmaktadır:
Kod: Tümünü seç
$site = @file_get_contents("http://$siteadi"); // @ operatörü ile hata mesajını gizliyoruz
if ($site === FALSE) {
die("Web sayfasına erişim sağlanamadı.");
}
2.Daha Esnek Parçalama:
Eğer web sayfasının yapısı değişirse, belirli bir dizeye bağlı kalmak yerine, daha esnek bir yaklaşım kullanmak isteyebilirsiniz. Örneğin, DOMDocument sınıfını kullanarak HTML içeriğini daha güvenilir bir şekilde analiz edebilirsiniz:
Kod: Tümünü seç
$dom = new DOMDocument();
@$dom->loadHTML($site); // Hataları gizlemek için @ operatörünü kullanıyoruz
$images = $dom->getElementsByTagName('img'); // Tüm img etiketlerini alıyoruz
foreach ($images as $img) {
$src = $img->getAttribute('src'); // Her img etiketinin src özniteliğini alıyoruz
if (strpos($src, 'img/pr/1/pr') !== false) { // Belirli bir dizeyi kontrol ediyoruz
echo $src . "<br>"; // Eşleşen resim kaynaklarını ekrana bastırıyoruz
}
}
3.Veri Kaydetme:
Elde ettiğiniz verileri bir dosyaya veya veritabanına kaydetmek isteyebilirsiniz. Örneğin, elde edilen resim dosyası adlarını bir metin dosyasına kaydetmek için aşağıdaki kodu kullanabilirsiniz:
Bu kod, her elde edilen resim dosyası adını resimler.txt adlı bir dosyaya ekler.
İmdi makaleyi toptan özetleyelim …
Bu makalede, PHP ile web scraping işlemini daha ayrıntılı bir şekilde ele aldık. Hata yönetimi, esnek parçalama ve veri kaydetme gibi gelişmiş özellikler ekleyerek, scraping işleminizi daha güvenilir ve kullanışlı hale getirdik. Web scraping, doğru bir şekilde yapıldığında, birçok faydalı veri elde etmenizi sağlayabilir. Ancak, her zaman yasalara ve etik kurallara uymak önemlidir.
Yararlanılan Kaynaklar :
PHP Manual - file_get_contents() : https://www.php.net/manual/en/function. ... ntents.php
PHP Manual - DOMDocument : https://www.php.net/manual/en/class.domdocument.php
Web Scraping Best Practices : https://www.scrapingbee.com/blog/web-sc ... practices/
Hazırlayan :
Maden Mühendisi
Alaydan Yetişme PC Kullanıcısı
DÜZCE/Akçakoca
Aralık 2024