PHP WEB SCRAPING
PHP üzerinden web scraping yapmak istiyorum
Site üzerinde her şey doğru gözükürken kod kısmında sanırım golang kullanılıyor ve bu yüzden view-source: ile rating sayısı çekemiyorum.
Site adresi:https://www.minecraft.net/en-us/pdp?id=d2544083-f3fb-4118-8fc5-8b2eb07d8d72
Görünürde bu şekilde
<span class="pr-4 ng-binding">27 Ratings</span>
fakat view-source girince şu şekilde gözüküyor
<span class="pr-4">{{productInfo.rating.totalRatingsCount}} Ratings</span>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (1)
Bu sitede angular, react ne varsa kullanmışlar :) Ama senin olayın bunları kaynaktan çekmek yerine kaynağa gelene kadar nereden dataların nereden geldiğini tespit etmek. Geliştirici aracını açıp network'den XHR'ı seçerek yenilersen orada şu adrese istek attığını göreceksin;
Yani önemli olan id'ye göre bu adrese istek atıp gelen json formatını ayrıştırarak rating değerlerini almak olacak. Onu da şöyle yapabilirsin;
function minecraft($id)
{
$url = sprintf('https://www.minecraft.net/bin/minecraft/productmanagement.productdetails.json?id=%s', $id);
$data = file_get_contents($url);
$array = json_decode($data, true);
return $array['rating'];
}
$ratings = minecraft('d2544083-f3fb-4118-8fc5-8b2eb07d8d72');
print_r($ratings);