Cradex için kodladığım site analiz çıkarma betiğinden sonra ,daha detaylı ve sitenin içeriğiyle alakalı istatistikleri veren bir bölümü daha bitirmek üzereyim ve bu ayrıntılı dökümlerde ,hedef siteye dahil olan css ve javascript dosyalarını tespit ettirip sayısını istatistik olarak ekrana bastırıyorum.Bu yazıda da onu yapan kodu paylaşacağım.
Daha önce bir sayfadaki tüm linkleri alma konusunda verdiğim genel şablonu bu sefer script taglarına yönelip src özelliği olan elementleri alması için düzenliyoruz.farkettiğiniz gibi diğer konudaki kodlardan sadece /html/body/a kısmını /html//script haline getirdim.burdaki mantık da parenttan child’a doğru gidiyor , html en yukarıda onun altında body kısmındaki a’lara yani linklere yönel ve $url = $href -> getAttribute(‘href’); ve href özelliği olanları al demiştik.
şimdi aynı mantıkta html’de script taglarını yakalayıp src özelliği olanları alacağız ,bu sefer body classına inmedik çünkü javascript dosyaları kısmında tanımlanır ,head da yazabilirdik fakat sayfanın en altında olan google analytics adsense yandex gibi kodları yakalayamayabilirdik.
Bu kodlar javascriptleri alıyor ,peki css leri nasıl alacağız ? cssleri yakalamak için de html sınıfından link kısmına inip ona ait href’leri istettirebiliriz (/html//link) yalnız linkten ya da script’ten önce 2 tane taksim kullanmamız gerekiyor çünkü html ile link arasında bir sınıfı belirtmedik ve eğer tek taksim kullanırsak ekrana birşey bastırılmayacaktır.
set_time_limit(0);
$target_url = "cradex.org";
$userAgent = 'Googlebot/2.1 (http://www.googlebot.com/bot.html)';
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
curl_setopt($ch, CURLOPT_URL,$target_url);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_TIMEOUT, 0);
$html= curl_exec($ch);
if (!$html) {
echo "
cURL error number:" .curl_errno($ch);
echo "
cURL error:" . curl_error($ch);
exit;
}
$dom = new DOMDocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate("/html//script");
$jsnum = 0;
for ($i = 0; $i < $hrefs -> length; $i++){
$href = $hrefs -> item($i);
$url = $href -> getAttribute('src');
if (strpos($url,'.js') !== false)
$jsnum++;
echo $url."
";
}
echo "
".$jsnum;
?>