Spor Toto Süper Lig Fikstürü Botu Yapmak - 2 | 2013-2014


Geçtiğimiz günlerde spor toto bilgilerini geçen bir bot hazırlamıştım. Yalnız bu bot bilgileri tümden aldığı için pek ayrıntılı bir şey olmamıştı. Bugün oturdum ve sil baştan tekrar aynı siteden geçen bir bot yaptım. Bu sefer jQuery ile biraz görsellik vererek daha dinamik ve daha albenili olarak hazırladım.

Kodlarda baya ayrıntı olduğundan grup grup ayırarak kod bloklarında ne yaptığımı anlatarak kısa bilgiler vermeye çalışacağım.

Botu for döngüsünü kullanarak daha düzenli bir hale getirdim. Böylece verileri daha istikrarlı olarak çekme fırsatı yakalamış olduk. Botu gene cURL yapısını kullanarak hazırladım.

Şimdi ilk önce cURL bağlantımızı yapacak olan bağlantı fonksiyonumuzu oluşturalım.

<?php
Function Baglan($link){
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$link);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_REFERER,"http://www.yandex.com.tr");
$Curl = curl_exec($ch);
curl_close($ch);
return $Curl;
}
?>

Yukarıdaki gibi basit bir fonksiyon yapısı ile siteye bağlanmış oluyoruz. Bağlantımızın yandex üzerinden yaptığımızı belirtiyoruz. Böylece referans ile siteye bağlanmış olduk. İsterseniz bunu Google olarak düzenleyebilirsiniz.

Şimdi fonksiyonu kullanarak bağlanacağımız siteminin adresini yazalım ve değişken ile buna ulaşabilir hala getirelim.

$Baglan= Baglan("http://www.tff.org/Default.aspx?pageID=198");

Yukarıdaki gibi bağlanacağımız site adresini de yazdık. Şuan siteye bağlanmış durumdayız. İsterseniz echo komutu ile $Baglan değişkenini ekrana yazdırarak görebilirsiniz.

Şimdide verilerimizi basacağımız tablo yapısını oluşturalım ve sonra gerekli yeri for ile döndürüp bilgileri basalım.

<table border="0" cellspacing="0" cellpadding="0" class="puan_durumu">
<tbody>
<tr>
<th> </th>
<th> </th>
<th style="text-align:left">Takimlar</th>
<th width="30">O</th>
<th width="30">G</th>
<th width="30">B</th>
<th width="30">M</th>
<th width="30">Av</th>
<th width="30" style="font-weight:bold">P</th>
</tr>

Yukarıdaki ilk kısım tablomuzun başlık kısmı oluyor. Şimdi for yapımızı oluşturalım ve bunun içine preg_match_all ile desenlerimizi hazırlayıp, gelen verileri de tablo yapısındaki gerekli yerlere bastıralım.

for($a=1; $a <=18; $a++){
if($a < 10){$a = "0".$a;}
preg_match('@<a id="ctl00_MPane_m_198_1890_ctnr_m_198_1890_grvACetvel_ctl'.$a.'_lnkTakim" href="(.*?)">(.*?)</a>@si',$Baglan,$Takim);
preg_match('@<span id="ctl00_MPane_m_198_1890_ctnr_m_198_1890_grvACetvel_ctl'.$a.'_lblOyun">(.*?)</span>@si',$Baglan,$Oynanan);
preg_match('@<span id="ctl00_MPane_m_198_1890_ctnr_m_198_1890_grvACetvel_ctl'.$a.'_Label4">(.*?)</span>@si',$Baglan,$Galibiyet);
preg_match('@<span id="ctl00_MPane_m_198_1890_ctnr_m_198_1890_grvACetvel_ctl'.$a.'_lblKazanma">(.*?)</span>@si',$Baglan,$Beraberlik);
preg_match('@<span id="ctl00_MPane_m_198_1890_ctnr_m_198_1890_grvACetvel_ctl'.$a.'_lblPuan">(.*?)</span>@si',$Baglan,$Malup);
preg_match('@<span id="ctl00_MPane_m_198_1890_ctnr_m_198_1890_grvACetvel_ctl'.$a.'_Label5">(.*?)</span>@si',$Baglan,$Averaj);
preg_match('@<span id="ctl00_MPane_m_198_1890_ctnr_m_198_1890_grvACetvel_ctl'.$a.'_Label3">(.*?)</span>@si',$Baglan,$Puan);

echo'<tr class="aaaa">
<td style="text-align:right">'.$a.'</td>
<td></td>
<td style="text-align:left">'.substr(stristr($Takim[2],"."),1).'</td>
<td>'.$Oynanan[1].'</td>
<td>'.$Galibiyet[1].'</td>
<td>'.$Beraberlik[1].'</td>
<td>'.$Malup[1].'</td>
<td>'.$Averaj[1].'</td>
<td style="font-weight:bold">'.$Puan[1].'</td>
</tr>';
}

Yukarıdaki desenleri incelerseniz verilerin nasıl alındığı konusunda fikir sahibi olursunuz. Şimdi verileri de çektiğimize göre artık tablo yapımızı kapatabiliriz. For dışında kalan tablo kapatma etiketlerini de sona ekleyip botumuzu bitirelim.

</tbody></table>

Php kodlamaları olarak işlemlerimiz burada son buluyor. Şimdi çekmiş olduğumuz verileri bir tablo yapısına aktardık. Böylece verilerimiz düzenli bir biçimde görünmüş olacak. Bunu daha düzenli hala getirmek için birkaç css düzenlemesi yapalım. O düzenlemelerimizde şu şekilde olsun;

<style type="text/css">
table.puan_durumu {background-color:#fff;color;#333;font:11px Tahoma}
table.puan_durumu tr.sampiyon {background-color: #FFE009!important;}
table.puan_durumu tr.uefa {background-color: #65C5F3!important;}
table.puan_durumu tr.even {background-color: #dcdcdc;}
table.puan_durumu tr.odd {background-color: #eaeaea;}
table.puan_durumu tr.kume {background-color: #333!important;color: #FFF!important;}
table.puan_durumu th {font-weight: bold;color: #C00}
table.puan_durumu td {text-align: center;border-bottom-width: 1px;border-bottom-style: solid;border-bottom-color: #F9F9F9;padding-top: 5px;padding-right: 4px;padding-bottom: 5px;padding-left: 4px;}
</style>

Yukarıdaki kodları yazdığımızda görünüm olarak güzel bir hal almış olacak. Ek olarak şampiyon, uefa ve küme düşenlerin belirtileceği css düzenlemeleri de hazırladım. Şimdi bunları jQuery ile atayalım ve ilk 2 şampiyonlar ligine, 3-4. sıradakileri uefa ligine ve son 3te yer alan takımların küme düştüğünü belirtelim.

İlk önce sayfamızın en tepesine jQuery kütüphanesini dahil ediyoruz.

<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>

Kütüphaneyi dahil ettikten sonra şimdi jQuery kodlarımızı yazabiliriz. Kodlarımız da :eq ile indis numarasını belirterek .addClass'ı kullanarak işlemimizi tamamlıyoruz. Özel ligler dışında kalanları ise renkli listeleme dersindeki gibi renklendiriyoruz. Bunun için odd ve even kullanıyoruz.

<script type="text/javascript">
$(".aaaa:even").addClass("even");
$(".aaaa:odd").addClass("odd");
$("table.puan_durumu tr:eq(1),table.puan_durumu tr:eq(2)").addClass("sampiyon");
$("table.puan_durumu tr:eq(3),table.puan_durumu tr:eq(4)").addClass("uefa");
$("table.puan_durumu tr:eq(16),table.puan_durumu tr:eq(17),table.puan_durumu tr:eq(18)").addClass("kume");
</script>

Botumuz kodsal ve görsel olarak artık hazır durumda!

Bundan daha da fazlasını geliştirmem artık. Başka bot paylaşımlarında görüşmek üzere :)

Türkçe Karakter Sorunu Düzenlemesi (05.08.2015)

Botu hazırladığımız site, charset olarak windows-1254 kullanmaya başladığından dolayı bir takım Türkçe karakter sorunları yaşanmaktaydı. Bu sorunu çözmek için kodlama türünü; UTF-8 ile BOM Olmadan Kodla seçilmelidir. Diğer değişiklikte aşağıda yer alan meta charset tanımlamasının, sayfanın en üstüne yazılmasıdır. Bu iki değişiklikle Türkçe karakter sorununu çözmüş olacağız.

<meta http-equiv="Content-Type" content="text/html;charset=windows-1254" />

Sitede yer alan diğer bot dersleri;





EK DOSYALARI İNDİR (214)
DEMOYU GÖRÜNTÜLE (130)
- 17.09.2013 / 00:37:17 1

Sosyal Medya Paylaşım Alanı

Bunlarda İlginizi Çekebilir

Genel Makaleler

Gri Site Teması Düzenlemesi ve 13 Yenilik

Kategori: Genel Makaleler | 06.07.2015
Genel Makaleler

GTmetrix İle Web Sitenizin Performansını Analiz Edin

Kategori: Genel Makaleler | 06.05.2013
cURL Dersleri

Php ile is.gd Servisini Kullanarak Link Kısaltmak

Kategori: cURL Dersleri | 03.10.2013
Seo(.htaccess)

Dofollow ve Nofollow Etiketleri Nedir? Nasıl Kullanılır?

Kategori: Seo(.htaccess) | 03.05.2013
4:49 Html Dersleri

Google Chrome İnputlar İçin Sesli Arama Özelliği

Kategori: Html Dersleri | 03.05.2013

Yorum Listesi (2) # YorumYap

  • Gökhan Demir (28.09.2013 - 15:16:56)
    Türkçe karakter sorunu yaşıyorum ne yaptıysam düzeltemedim
  • Ahmet (07.05.2016 - 16:17:53)
    Hocam bot da sıkıntı var galiba demo ekranını örüntülüyorum verilerin hiç biri gözükmüyor

Hadi Sende Yorum Yap!

Yorum Gönderilmiştir. Onaylandıktan Sonra Mesajınız Yayınlanacaktır.