13 Mart 2015 Cuma

PHP Bot Yapma

php-dedicated
Curl’yi kullanarak birphp botu yapacağız
<?php
function cek($url){
    $useragent'Mozilla/5.0 (compatible; Googlebot/2.1; +[url]http://www.google.com/bot.html)';
/*Kullanıcı bilgilerimiz.Siteye diyoruz ki mozilla ile bağlanıyorum ben googlebotum diyoruz*/
$referer'http://www.google.com/';
/*Nerden geldiğimiz yani referer bilgimiz.Yani diyoruz ki biz google dan geliyoruz.*/
  $header[] = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
  $header[] = "Cache-Control: private, max-age=0";
  $header[] = "Connection: keep-alive";
  $header[] = "Keep-Alive: 115";
  $header[] = "Accept-Charset: ISO-8859-9,utf-8;q=0.7,*;q=0.7";
  $header[] = "Accept-Language: tr-TR,tr;q=0.8,en-us;q=0.5,en;q=0.3";
  $header[] = "Pragma: ";
    /*Header bilgilerimizi girdik*/
$ch = curl_init();
/*Curl oturumumuzu başlatmak için  değişkenimizi oluşturduk.*/
curl_setopt ($ch, CURLOPT_URL, $url);
/*Bağlanacağımız adresi verdik*/
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
/*Transefri açtık*/
curl_setopt ($ch, CURLOPT_HTTPHEADER , $header);
/*Header i set ettik*/
curl_setopt ($ch, CURLOPT_REFERER, $referer);
/*Geldiğimiz siteyi set ettik*/
curl_setopt ($ch, CURLOPT_USERAGENT, $useragent);
/*user agent bilgilerimizi set ettik*/
$return= curl_exec($ch);
/*Seçeneklere bakarak curl oturumunu işliyoruz*/
curl_close($ch);
/*İşimiz bittiği için kapatıyoruz.*/  
return $return;
}
function sayfacek($url){
    $content=cek($url);
    /*Oluşturduğumuz fonksiyonla içeriğimizi çektik.*/
    $basla='<div class="oyunlar_c">';
    $bitir='</div>';
    /*Oyunlar class lı divin arasında kalanları çekelim*/
    preg_match_all("@".$basla."(.*?)".$bitir."@si",$content,$oyunlar);
    /*çektik ve $oyunlar değişkenine aktardık*/
    $content=$oyunlar[1][0];
    /*Oyunlar divini pregmatch ile parçaladık.*/
    preg_match_all('@<a title="(.*?)"@si',$content,$title);
    $titles=$title[1]; 
    /*Oyunun başlığı*/
    preg_match_all('@href="(.*?)">@si',$content,$hrefs);
    $hrefs=$hrefs[1];
    /*Oyunun linki*/
    preg_match_all('@<img src="(.*?)"@si',$content,$images);
    $images=$images[1];
    /*Oyunun resmi*/
    return array(
    "titles"=>$titles,
    "links"=>$hrefs,
    "images"=>$images
    );
    /*Dizi olarak değişkenlerimizi döndürdük.*/
}
function catcek(){
        /*Kategorileri çekebilmek için bir url*/
        $content=cek($url);
        preg_match_all('@<div class="kategori">(.*?)</div>@si',$content,$cikti);
        /*preg match ile kategori divini çektik*/
        $content=$cikti[0][0];
        preg_match_all('@<a href="(.*?)">@si',$content,$links);
        $links=$links[1];
        /*Kategori linklerini çektik*/
        preg_match_all('@<a href="(.*?)">(.*?)<span>@si',$content,$catnames);
        $catnames=$catnames[2];
        /*Kategori adlarını çektik*/
        return array(
        "links"=>$links,
        "names"=>$catnames
        );
        /*dizi olarak değişkenlerimizi döndürdük*/
}
function sayfalamacek($url){
    $content=cek($url);
    /*cek fonksiyonu ile içeriğimizi çektik*/
    preg_match_all('@<div class="alt_sayfalama u_b clearfix">(.*?)</div>@si',$content,$cikti);
    /*Sayfalama alanının divini parçaladık ve aldık*/
    $content=$cikti[0][0];
    preg_match_all('@<a href="(.*?)">(.*?)</a>@si',$content,$sayfalar);
    $sayfalar=$sayfalar[1];
    /*Sayfaların linklerini çektik*/
    return $sayfalar;
}
if(! $_POST){
    /*Eğer bir forum gönderilmemişse.*/
    $catcek=catcek();
    /*Kategorilerimizi getirdik.*/
    $i=0;
?>
<form method="POST">
Lütfen Kategoriyi seçiniz...
<select name="cat" id="">
<?php foreach($catcek["links"as$link){
/*Kategorilerimiz array olduğundan foreach döngüsü ile parçaladık.*/
?>
<option value="<?php echo $link; /*Linkimizi verdik*/?>"<?php echo$i==0? " selected": NULL; /*Eğer ilk elemansa selected değilse hiç birşey yazdırma*/ ?>>
<?php echo $catcek["names"][$i]; /*Kategori adını yazdırdık.*/?></option>
<?php
$i++;
} ?>
</select>
<input type="submit" value="Gönder">
</form>
<?php
}else{
    /*Bir form gönderilmişse*/
    $url="http://oyun.milliyet.com.tr".$_POST["cat"];
    /*url adresimizi post ile gelen cat elemanından çektik.*/
    $sayfalar=sayfalamacek($url);
    /*url mizi vererek sayfalamayı çektik*/
    foreach($sayfalar as $sayfa){
        /*Sayfalama dizi olarak döndüğünden foreach döngüsüne aldık*/
    $a= sayfacek("http://oyun.milliyet.com.tr".$sayfa);
    /*sayfa çek ile sayfadaki oyunları çektik.*/
    $i=0;
    foreach($a["titles"as $title){
        echo"Başlık: ".$title." <br /> Link: ".$a["links"][$i]."<br />Resim Url :".$a["images"][$i]."<br /><br /><br />";
        /*Başlığımızı oyun linkini ve oyun resmini yazdırdık.İstersek oyun linkine girip oyun içeriğinide çekebiliriz.
        Ben yapmadım ama siz üstteki fonksiyonları inceleyerek çok rahat şekilde yapabilirsiniz...*/
        $i++;
    }
    }
}
?>

Hiç yorum yok:

Yorum Gönder