v2.5.2
Giriş yap

PHP WEB SCRAPING

ferixinder
717 defa görüntülendi ve 1 kişi tarafından değerlendirildi

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>
Cevap yaz
Cevaplar (1)
tayfunerbilen
1377 gün önce

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;

https://www.minecraft.net/bin/minecraft/productmanagement.productdetails.json?id=d2544083-f3fb-4118-8fc5-8b2eb07d8d72

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);