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