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!

• 6 yıl önce
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
• 6 yıl önce
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
• 6 yıl önce
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
• 4 yıl önce
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