PHP ile bir web sayfasındaki belirli bir elementin ekran görüntüsünü alarak sunucuya kaydetmek için web tarayıcısı otomasyon kütüphanelerini kullanmanız gerekmektedir. Puppeteer, bu tür bir işlemi gerçekleştirmek için kullanılabilir. İşte bir örnek:
- Öncelikle, Puppeteer’ı projenize dahil etmelisiniz. Puppeteer’ın resmi GitHub sayfasından son sürümü indirebilirsiniz: Puppeteer GitHub
- Zip dosyasını indirip çıkartın ve projenizin dizinine taşıyın.
- Aşağıdaki gibi bir örnek kodu kullanarak bir elementin ekran görüntüsünü alabilir ve sunucuya kaydedebilirsiniz:
<?php
require 'puppeteer/vendor/autoload.php'; // Puppeteer'ı dahil edin
use Nesk\Puphpeteer\Puppeteer;
// Puppeteer'ı başlat
$puppeteer = new Puppeteer;
$browser = $puppeteer->launch();
// Yeni bir sayfa aç
$page = $browser->newPage();
// Sayfaya git
$page->goto('https://www.example.com');
// Elementi seç
$element = $page->querySelector('css_selector'); // css_selector yerine hedef elementin CSS seçicisini belirtin
// Elementin boyutlarını al
$boyutlar = $element->boundingBox();
// Sayfa boyutlarını ayarla
$page->setViewport([
'width' => $boyutlar['width'],
'height' => $boyutlar['height']
]);
// Ekran görüntüsünü al
$screenshot = $element->screenshot();
// Ekran görüntüsünü sunucuya kaydet
$dosyaAdi = 'element_screenshot.png';
file_put_contents($dosyaAdi, $screenshot);
// Tarayıcıyı kapat
$browser->close();
?>
Yukarıdaki örnekte, Puppeteer’ı kullanarak web tarayıcısını başlatıyoruz. Ardından, bir sayfa açıyoruz ve hedef elementin CSS seçicisini belirterek elementi seçiyoruz. Elementin boyutlarını alarak, sayfa boyutlarını buna göre ayarlıyoruz. Daha sonra, screenshot()
yöntemini kullanarak elementin ekran görüntüsünü alıyoruz. Son olarak, file_put_contents()
fonksiyonunu kullanarak ekran görüntüsünü belirtilen dosya adıyla sunucuya kaydediyoruz.
CSS seçicisi olarak querySelector()
yöntemi kullanılarak elementin herhangi bir CSS seçicisi belirtilebilir. Örneğin, elementin ID’sini veya class adını kullanabilirsiniz.
Bu örnekte, Puppeteer’ın Node.js’e dayalı bir kütüphane olduğunu unutmayın. Bu nedenle, PHP’de Puppeteer kullanırken, Puppeteer’ın PHP için bir portu olan Puphpeteer’ı kullanmanız gerekmektedir. Puphpeteer, Puppeteer’ın PHP’de kullanımını kolaylaştırmak için bir arayüz sağlar.
Bir yanıt yazın