Linkedin Instagram Facebook Twitter Mail Youtube Whatsapp

Php ile Bot Yapımı

Öncelikle bot nedir ona bir değinmek istiyorum. Bot diğer sitelerden kod parçacıkları aracılığıyla veri çekmemizi sağlar. Bazı fonksiyonlar ve parametreleri kullanarak diğer sitelerden veri (ç)almak diyebiliriz. Bu yazacağım bot basit anlamda yazılmış yalnıza bir sayfadaki verileri çekecek. Eğer geliştirilebilir ve döngüye sokulabilirse eğer elbette tüm sayfaları çekebilirsiniz. Bu bot ile siirturkusu.com sayfasından bir adet şiiri çektim. İsterseniz başlıklarını da buradaki mantık ile çekebilirsiniz veya yazarın kim olduğunu… Linkleri temizlemek ve bazı html etiketlerini temizlemek elbette yeni bir fonksiyon gerektiriyor. Şimdi botumuza başlayalım.
<?php
$site = "https://siirtutkusu.com/yirminci-asra-dair";
$bolme = ('@<div id="sitxt" itemprop="articleBody">.*?</div>@si');
$arama = file_get_contents($site);
preg_match_all($bolme,$arama,$siir);

echo '<pre>';
print_r($siir[0][0]);
echo '</pre>';
?>
Buradaki değerlerden bahsedecek olursam ; $site : Veriyi çektiğimiz siteyi bir değişkene aktardık. $bolme : Mantıklı olarak bir bölme işlemi yaptık. Böylece sitenin her yerini tane tane çekebiliriz. Burada içerik hangi div ya da etiketin içerisindeyse baş ve son kısım alınır. .*? : Bu ifade oranın değişken olduğunu belirtir. Başka bir sayfadan veri çekileceği zaman div’ler sabit kalacak fakat elbette içerik değişecektir. Bu yüzden .*? kullanılır. File_get_contents : Bu en önemli fonksiyonlardan birisidir. Belirlenen sitede arama yapmamızı sağlar. <pre></pre> kodları : Bu kodlar sayesinde gelen değerleri bir dizi halinde görebilir ve ona göre değerleri alabiliriz. Rahat görmek açısından faydalıdırlar. Preg_match_all : Bu fonksiyon sayesinde üç parametre belirleyebiliriz. İlk değer verinin çekileceği etiketlerin bulunduğu $bolme  , ikinci kısım arama yaptığımız değişken ve üçüncüsü de yeni bir değişken… Bu değişkene hangi bölümü çekiyorsak onun ismini veririz. Orada eğer başlık çekiyor olsaydık tekrar bir $baslik değişkeni belirtmemiz gerekecekti. Eğer birden fazla bilgi çekeceksek şöyle bir düzenleme yapabiliriz. Onu da paylaşayım.
<?php
$site = "https://siirtutkusu.com/yirminci-asra-dair";
$bolme = ('@<div id="sitxt" itemprop="articleBody">.*?</div>@si');
$bolme2 = ('@<h1 itemprop="name">.*?</h1>@si');
$bolme3 = ('@<a href="/nazim-hikmet-siirleri" class="yzr_lnk">.*?</a>@si');
$arama = file_get_contents($site);
preg_match_all($bolme,$arama,$siir);
preg_match_all($bolme2,$arama,$baslik);
preg_match_all($bolme3,$arama,$yazar);

echo '<pre>';
print_r($baslik[0][0]);
print_r($siir[0][0]);
print_r($yazar[0][0]);

echo '</pre>';
?>
Böylelikle başlık , şiir ve yazarı çekmiş olduk. Basit anlamda bir bot yapımıydı. Dikkat ederseniz çektikçe değerlere yeni eklemeler yapılıyor. Bunlara bağlı kalarak güzel bir bot yapabilirsiniz. Tabi pyhton ve cURL gibi olmasa da belirttiğim gibi basit anlamda güzel bir bot diyebiliriz.

Bir Yorum Yaz