Merhaba Arkadaşlar;
Forumda bazı arkadaşların talebi üzerine en basite indirgerek bir bot anlatımı hazırladım. Şimdilik sadece haber botuna ait döküman hazırlayabildim, video, müzik vb. botlarla ilgili de yazı yazacağım. Elimden geldiğince temel bilgilerle, bir bot yazımı hazırladım. Hangi siteye ait bot olduğuna dair bilgiyi, 1.Adımda görebilirsiniz. Yazım eğitim amaçlı olup, tüm hukuki sorumluluklar kullanıcıya aittir.
Kullandığımız Fonksiyonlar; * file_get_contents * preg_match * empty
1.Adım ( Site Tanımlama ) ; <?php
$m6k = $_GET["m6k"];
$url="http://www.h a b e r t u r k.com/gundem/haber/$m6k-haber";
$cek = file_get_contents($url);
Açıklama : $url değişkenine yazmış olduğum linkde $m6k yerine haber id'si gelmektedir. Yazımın devamın da niye böyle yazdığımı anlayacaksınız.
2.Adım ( Çekilecek Veriler ) ; preg_match('#<h1 class="header">(.*?)</h1>#s',$cek,$haberbaslik);
preg_match('#<h2 class="spot">(.*?)</h2>#s',$cek,$haberkisa);
preg_match('#<div class="date" id="HaberTarih">(.*?)</div>#s',$cek,$habertarih);
preg_match('#<span id="news-detail-body"><p>(.*?)</div>#s',$cek,$habericerik);
Açıklama : Çekeceğimiz haber içeriği verisi <span id="news-detail-body"><p> ila <p> kodlarının arasında yer alıyor. preg_match fonksiyonunun kullanımı bu biçimde
Örneğin; preg_match('#<span id="news-detail-body"><p>(.*?)</div>#s',$cek,$habericerik); 3.Adım ( Verileri Değişkene Atıyoruz ) ; Bu kısımda preg_match ile aldığımız verileri değişkene atıyoruz. Aldığımız verilerin şuan için dizi olduğunu unutmayalım. $haberbaslik = $haberbaslik[1];
$haberkisa = $haberkisa[1];
$habericerik = $habericerik[1];
$habertarih = $habertarih[1];
preg_match('#<img class="news-image" alt="'.$haberbaslik.'" src="(.*)" />#s',$cek,$resim);
$resim = $resim[1];
Açıklama : $haberbaslik[1] yazmamızın amacı gelen verilerin dizi olmasıdır. Bu alanda preg_match kullanmamın amacı ise, burada alt="'.$haberbaslik.'" $haberbaslik kullandığımdan dolayıdır. 4.Adım ( Veri Kontrol ) ; Şimdi dosyamızın adının haberbot.php olduğunu varsayalım.
Adres : http://www.siteismi.com/haberbot.php?m6k=1
Yukarıdaki gibi adresde, hedef sitedeki1 numaralı ID ye ait haber içeriklerini alacaksınız. Ancak hedef sitede o ID yok ise, sayfamız da veri alanları boş görünecek ve hoş görüntü oluşmayacaktır. Bunu engellemek için aşağıdaki kod yapısını yazdım. Empty fonksiyonu ile değişkenimizin bir değer alıp almadığını kontrol ederek, eğer ki değer almadıysa otomatik olarak bir sonraki ID ye yönlendirilmesini sağladım.
$linkileri = $m6k + 1; // SONRAKI SAYFA ID si
$linkgeri = $m6k - 1; // ONCEKI SAYFA ID si
if(empty($haberbaslik))
{
?><script>window.location="haberbotu.php?m6k=<?php $m6k = $m6k+1; echo $m6k; ?>";</script>
<?php
} else {
?>
5.Adım ( Verileri Ekrana Basma ) ;
Şimdi arkadaşlar. Verileri aldık, kontrol ettik. Şimdi de ekranımıza basalım bu verileri.
Haber Başlığı : <?php echo $haberbasligi; ?>
Haber Özeti : <?php echo $haberkisa; ?>
Haber Tarihi : <?php echo $habertarihi; ?>
Haber Resmi : <?php echo $resim; ?>
Haber İçeriği : <?php echo $habericerigi; ?>
<a rel="nofollow" href="haberbotu.php?m6k=<?php echo $linkgeri; ?>">Önceki Haber</a>
<a rel="nofollow" href="haberbotu.php?m6k=<?php echo $linkileri; ?>">Sonraki Haber</a>
<?php
}
?>
Bu yazı tamamen eğitim amaçlı ve alıntı olmayıp, tüm hukuki sorumluluklar kullanıcılara aittir.
Demo | İndir