PHP ile Bot Yapımı

Bu dersimizde PHP ile file_get_contents komutu ve preg_macth_all kullanarak nasıl bot yapacağımızı anlattık.

Bu dersimizde PHP ile file_get_contents komutu ve preg_macth_all kullanarak nasıl bot yapacağımızı anlattık.


<head>

<title>MERHABA HABER BOTU </title>

</head>

<body>



 $site=file_get_contents("http://www.sitem.com/son-dakika");

 preg_match_all('@<span class="ti">(.*?)</span>@si',$site,$baslik);

 preg_match_all('@<span class="spot">(.*?)</span>@si',$site,$icerik);

 

echo $baslik[0][0];

echo '<br>';

echo $icerik[0][0];

 

//print_r($icerik);

 

?>

</body>

</html>



Şimdi sizlere nasıl bot yapılır onu anlatacağım:

$site değişkenimiz var $baslik ve $içerik

$site değişkenimiz hangi siteden bağlantı çekiçeğimizi gösteriyor

Örnek 1:

Sitemiz www.borsa.com/dolar.html olsa idi bizim $site tanımlamamız:


$site=file_get_contents('www.ornekdolarsitesi.com/dolar.html');



şeklinde olacaktı.

Örnek 2:


preg_match_all('@<span class="ti">(.*?)</span>@si',$site,$baslik);



Bu nedir? Bu kısım aslında şu şekildedir:


<span class="ti"> 2,34 TL </span>



Orijinal kısmı budur. Peki, neden biz bunu böyle yaptık @(.*?)@si

Orijinal kısmı budur. Peki, neden biz bunu böyle yaptık @(.*?)@si

Dedik ki, burası bir sitede bir class ve sürekli değişen bir alan. Bizim bunu bota anlatmamız gerek. O da @ işareti ile değişken olan kısmın buradan başladığını anladı. 2,34 TL yazan yer ise değişkenin içindeki içerik kısmı. Onu da (.*?) kod ile anlattık. Ona dedik ki: "Bu (.*?) var ise, bu divin veya clasın içi değişir sürekli" dedik. Bunu bot bu kod ile anladı. Sonra geldik, @si işaretine dedik ki, "Bu da değişkenin bittiği yer." Onu da @si' bi kod ile anladı botumuz.

$baslik yazmamızın sebebi @ ile başlayan @si ile biten değişkenimizin ismini verdik ki, onu echo ya da print_r ile yazdıra bilelim diye.

echo $baslik[0][0]; Nedir?

Hatırladınız mı @ ile başlayan @ si ile biten bir değişkenimiz vardı var ve ona bu ismi verdik.

[0] [ 0] yazmamamızın sebebi onun bir dizi olması.


Print_r($baslik);



yapar isek onun dizi içindeki değerlerini görürüz.

0 0 veya 1 1 yazmamız veya 1 3 yazmamızın sebebi dizini içinde hangisi işimize yarıyorsa onu çekmek içindir.

İLAVE:


<head>

<title>MERHABA HABER BOTU </title>

</head>

<body>



 $site=file_get_contents("http://www.sitem.com/son-dakika");

 preg_match_all('@<span class="ti">(.*?)</span>@si',$site,$baslik);

 preg_match_all('@<span class="spot">(.*?)</span>@si',$site,$icerik);

preg_match_all('@<img src="http://resimler.sitem.com/resimler/thumb/(.*?)" alt="(.*?)">@si',$site,$resim);



echo $resim[0][0];

echo '<br>';

echo $baslik[0][0];

echo '<br>';

echo $icerik[0][0];



echo '<br>';



echo $resim[0][1];

echo '<br>';

echo $baslik[1][1];

echo '<br>';

echo $icerik[1][1];

//print_r($resim);



?>

</body>

</html>



Resmin orjinal linki budur:


<img src="http://resimler.sitem.com/resimler/thumb/ryan-air-ucak_8383.jpg" alt="Türk hava sahasında Ukrayna uçağı alarmı">



Düzenlenmiş kısmı da şudur:


preg_match_all('@<img src="http://resimler.sitem.com/resimler/thumb/(.*?)" alt="(.*?)">@si',$site,$resim);

  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

merhabalar www.borsa.com/dolar.html adresi yazmamın sebebi başka bir site olsaydı örneğin html asp aspx php gibi uzantılar ile sonu biterse diye başka bir örnek vermek istedim konunun asıl http://www.ensonhaber.com/son-dakika sitesi budur diğer sorunuz için a tagları demişşiniz takıldığınız kısmı burya yazar iseniz yardım etmeye çalışıyım sizlere ama tavsiyem classlar içinde olursa veriler daha kolay olur sizin için
merhabalar dolar sitesini örnek vermemin sebebi html aspx asp veya php gibi uzantılar olursa farklı bir durum olmadığını anlatmak için verilmiş bir örnektir a tagları için takıldığınız örnegi burya yazarsanız veya ben size vardım etmeye çalışıyım
preg_match_all('@<img src="http://i.ensonhaber.com/resimler/thumb/(.*?)" alt="(.*?)">@si',$site,$resim); resim çekme için bu kodu kullanuyoruz <img src="http://i.ensonhaber.com/resimler/thumb/o_3810.jpg" alt="Yiğit Bulut: Babacan'ın Bank Asya çıkışı Cemaat'e kıyak"> orjinal linkimiz budur
hocam örnek olarak ben sahibinden.com daki emlakçıların telefon numaralarını almak için bot yazmam gerekirse nasıl yapıcam https://www.sahibinden.com/satilik-daire/konya/emlak-ofisinden clasıda bu class="pretty-phone-part show-part"

Yukarı Git