PHP ile Web Scraping: Otomatik Veri Çekme ve Analiz

PHP ile Web Scraping: Otomatik Veri Çekme ve Analiz

PHP 23 Şub 2025 Ahmet Halit DURUSOY Ahmet Halit DURUSOY 3 dakika okuma
Paylaş:

PHP ile Web Scraping: Otomatik Veri Çekme ve İşleme Teknikleri

PHP ile web scraping yaparak otomatik veri çekme ve analiz etme tekniklerini öğrenin! cURL, DOMDocument ve XPath kullanarak web sitelerinden veri toplama rehberi burada.

Web Scraping Nedir?

Web scraping, belirli bir web sitesinden veri çekme ve işleme işlemidir. Bu teknik, içerik analizinden fiyat karşılaştırmalarına kadar birçok alanda kullanılır. Web scraping ile sitelerden metin, resim, bağlantılar ve diğer veriler alınarak işlenebilir.

Web Scraping’in Kullanım Alanları

  • Fiyat Karşılaştırma: E-ticaret sitelerinden fiyat bilgisi çekerek farklı mağazalardaki fiyatları analiz edebilirsiniz.
  • Haber Toplama: Haber sitelerinden başlık ve içerik çekerek güncel olayları tek bir platformda listeleyebilirsiniz.
  • SEO Analizi: Rakip sitelerin anahtar kelimelerini ve içerik stratejilerini analiz edebilirsiniz.
  • Ürün İnceleme: Kullanıcı yorumlarını ve değerlendirmeleri çekerek analiz edebilirsiniz.
  • Sosyal Medya Analizi: Belirli anahtar kelimeler için sosyal medya verilerini toplayabilirsiniz.

PHP ile Web Scraping Yöntemleri

PHP ile web scraping yaparken kullanılan bazı temel yöntemler şunlardır:

  • cURL kullanarak veri çekme
  • DOMDocument ile HTML içeriğini parse etme
  • XPath ile belirli elementleri seçme

cURL ile Web Sayfasından Veri Çekme

cURL, PHP ile HTTP istekleri yaparak veri çekmek için kullanılan güçlü bir kütüphanedir. cURL kullanarak bir web sitesinden veri çekmek için aşağıdaki kodu kullanabilirsiniz:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://example.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);
echo $response;

Bu kod, belirtilen URL’den HTML içeriğini alır ve ekrana yazdırır.

DOMDocument Kullanımı

DOMDocument ile HTML verisini ayrıştırarak belirli elementleri seçebilirsiniz. Örneğin, bir sayfadaki tüm başlıkları almak için şu kodu kullanabilirsiniz:

$dom = new DOMDocument;
@$dom->loadHTML($response);
$tags = $dom->getElementsByTagName('h1');
foreach ($tags as $tag) {
    echo $tag->nodeValue . "
";
}

Bu kod, sayfadaki tüm <h1> etiketlerini alıp ekrana yazdırır.

XPath ile Veri Seçme

XPath, HTML ve XML belgelerinde belirli veri parçalarını seçmek için kullanılır. Örneğin, bir sayfadaki belirli bir div içeriğini almak için şu kodu kullanabilirsiniz:

$xpath = new DOMXPath($dom);
$nodes = $xpath->query('//div[@class="content"]');
foreach ($nodes as $node) {
    echo $node->nodeValue . "
";
}

Bu kod, sayfadaki class="content" olan tüm div elementlerini alır.

Web Scraping Yaparken Dikkat Edilmesi Gerekenler

  • Web scraping yaparken hedef sitenin robots.txt dosyasını kontrol edin.
  • Sık istekler göndermemek için zaman aralıkları ekleyin.
  • Çektiğiniz veriyi analiz edip anlamlandırarak işleyin.

Web Scraping Uygulama Örnekleri

1. Fiyat Karşılaştırma Sitesi İçin Veri Çekme

E-ticaret sitelerinden ürün fiyatlarını çekmek için cURL ve XPath kullanılabilir.

2. Haber İçeriklerini Toplama

Haber sitelerinden başlık ve içerik çekerek güncel haberleri gösterebilirsiniz.

3. SEO İçin Rakip Analizi

Rakip sitelerden anahtar kelimeleri ve meta açıklamaları çekerek analiz yapabilirsiniz.

SEO İçin Web Scraping Kullanımı

Web scraping ile rakip sitelerden anahtar kelime analizleri ve içerik trendleri hakkında bilgi toplayabilirsiniz.

PHP ile web scraping, veri çekme ve analiz etme süreçlerini otomatikleştirmenize olanak tanır. cURL, DOMDocument ve XPath kullanarak web sitelerinden etkili bir şekilde veri toplayabilirsiniz. Ancak, scraping yaparken etik kurallara ve yasal çerçeveye dikkat etmeniz önemlidir.

Web scraping konusunda daha derinlemesine bilgi almak için PHP resmi dokümantasyonuna ve web scraping ile ilgili kaynaklara göz atabilirsiniz.

İlgili Etiketler

Çerez Ayarları

Deneyiminizi iyileştirmek için çerezler kullanıyoruz. Daha fazla bilgi için Çerez Politikamızı ziyaret edin.