@mikoc;
Merhaba kardeşim. İstediğin Tarzda Bi Bot Yaptım. Çıktısı Bu Şekilde :
Kodlarıda Paylaşayım.
http://pastebin.com/AaYH4wpD
Kendi Sitemede Attım .txt olarak
http://programciyiz.biz/r10.net/bothaber.txt Hatırlatma, Muhtemelen Bu Verileri Online olarak çekmek için kullanıcı adı ve şifre ile hesabına giriş yapman gerekecek. Çünkü her öğrencinin ayrı profili var. bu işlemi cURL in post metodu ve Cookie saklama yöntemiyle yapabilirsin.
Yani Kullanıcı adı ve şifreyi cURL ile post ettireceksin. Giriş Başarılı olursa oturum verilerini cURL ile kaydedeceksin ki, botun doğru düzgün çalışabilsin.
Eğer Sitene koyduğun şekilde html olarak kaydedersen bu kodlarla yaparsın.
Burayada Yazayım Bari
<?php
# CURL Fonksiyonumuz
function curlOku( $url )
{
$ch = curl_init();
$timeout = 0;
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt ($ch, CURLOPT_CAINFO, dirname(__FILE__)."/curl_cert.pem");
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7");
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, $timeout );
$file_contents = curl_exec( $ch );
if($file_contents == false){
return curl_error($ch);
curl_close($ch);
}else{
curl_close( $ch );
return str_replace(array("\n", "\r", "\t"), null,$file_contents);;
}
}
?>
<!doctype HTML>
<html>
<head>
<title> R10.Net Örnek Bot Sistemi </title>
<meta charset="utf-8"/>
</head>
<html>
<body>
<?php
$sayfaGetir = curlOku("http://busum.ml/kod/");
// Öğrenci No Alalım
preg_match_all('#<span id="Banner1_Kullanici1_txtOgrenciNo" (.*?)>(.*?)</span>#', $sayfaGetir, $ogrenciNo );
echo "<br/><br/> Öğrenci No: " . $ogrenciNo[0][0];
// Ad Soyad Alalım
preg_match_all('#<span id="Banner1_Kullanici1_txtAdiSoyadi" (.*?)>(.*?)</span>#', $sayfaGetir, $ogrenciAdSoyad );
echo "<br/><br/> Ad - Soyad " . $ogrenciAdSoyad[0][0];
// Sınıf - Gano Alalım
preg_match_all('#<span id="Banner1_Kullanici1_txtSinifSeneGano" (.*?)>(.*?)</span>#', $sayfaGetir, $sinifGano );
echo "<br/><br/> Sınıf- Gano Birleşik:<b> " . $sinifGano[0][0] . "</b>";
// Eğer Gano Ve Sınıfı Ayırmak istersen Aşağıdaki Kodları Dene ;)
# Gano - Sınıfı Ayrı Ayrı Yazdırmak:
$ganoSinifAyir = explode('-', $sinifGano[0][0]);
echo "<br/><br/> Sınıfı: <b>" . $ganoSinifAyir[0] . "</b>";
echo "<br/><br/> Gano: <b> " . $ganoSinifAyir[1] . "</b>";
// Ders Notlarını Alalım
preg_match_all('#<table id="ctl02_tblNotDurum" width="100%">(.*)<span id="ctl02_Label1" class="NormalBlack">#', $sayfaGetir, $dersTablo );
// Tablodaki Renkli Yerlerin Açıklamalarını Alalım.
preg_match_all('#<span id="ctl02_Label1" class="NormalBlack">(.*?)</td>#', $sayfaGetir, $tabloAciklamalar );
echo "<div class='notdurumu' style='margin:20px 5px 100px 15px;'>";
echo $dersTablo[0][0];
echo $tabloAciklamalar[0][0];
echo "</div>";
// Aşağıda Jquery İle Ayıklayamadığımız Html Nesnelerini ayıklayacağız.
?>
<script src="jquery.min.js"></script>
<script>
<!-- Ayıklayamadığımız Öğeleri Jquery İle Silelim ;) !-->
$(document).ready(function(){
var tabloUstu = $("table#ctl02_tblNotDurum > tbody > tr:first");
tabloUstu.remove();
});
</script>
</body>
</html>