PHP’de Bot yapım Mantığı Veri Çekme

0
681

Kısaca sizlere PHP ile uzak sitedeki verileri kendi sitenize daha doğrusu Veritabanınıza nasıl çekersiniz kısaca ve anlaşılabilir bir şekilde değinmeye çalışacağız. Daha açık konuşmak gerekirse Hürriyet.com.tr adresindeki haberleri / verileri nasıl kendi sitenize çekeceğinizden bahsedeceğiz.

Öncelikle PHP Bot yapımı mantığını kavramanız gerekiyor, Mantığı kavradıktan sonra istediğiniz yönde geliştirerek merak duygunuz sizi profesyonel bir bot yapımına kadar götürecektir.

PHP İle uzak sitedeki veriler nasıl çekilir?

Öncelikle 3 adet boş php dosyası oluşturalım dosyaların adları ;

index.php

titlegetir.php

icerikekle.php

Boş php dosyalarımızı isimlendirerek kaydedelim ve index.php dosyamızın içeriğine aşağıdaki kodları girip kaydedelim.

İndex.php dosyasının kodları :

<form method=”get” action=”titlegetir.php”>
<p>Sayfa URL :<input type=”text” name=”sayfaurl” /></p>
<input type=”submit” name=”gonder” value=”Getir” />
</form>

İndex.php dosyasının açıklaması : Yukarıda bir input oluşturduk ve bir button oluşturduk input’a hedef sitemizin verilerinin çekileceği URL’yi gireceğiz (Kategori URL’si)

Gireceğimiz örnek değer : http://www.hurriyet.com.tr/teknoloji/

Buraya kadar her şey tamam ama yukarıdaki index.php şu anda hiçbir işe yaramayacaktır kodları bitirmeden uygulamaya geçmeyelim.

Titlegetir.php dosyasının kodları :

<?php
$gelen = $_GET[‘sayfaurl’];
$site = file_get_contents(“$gelen”);
$aranan =(‘@<div class=”boxH194″>(.*?)</div>@si’);
$sayi = preg_match_all($aranan, $site, $ara);
for($a=0; $a<$sayi; $a++){
$sonuc = $ara[1][$a];
$veri = explode(‘<a href=”http://www.hurriyet.com.tr/’,$sonuc);
$veri = explode(‘” title=’,$veri[1]);
echo “$sonuc – <a href=’icerikekle.php?veri=$veri[0]‘>Ekle</a><br>”;
}
?>

Titlegetir.php dosyasının açıklaması : Bir önceki yani index.php dosyamızda sitemizin adını titlegetir.php dosyasına gönderdik $gelen değişkenine atadık ve ardından $aranan değişkeninde hedef sitedeki çekmek istediğimiz dataların olduğu kısmın başındaki ve sonundaki h2 taglarını yani bizim sitemizde başlıklarımızı aldık ve elrana bastırdık ayrıca her yazının karşısına bir “Ekle” buttonu verdik böylelikle hangi yazının yanındaki “Ekle” tuşuna basarsak o yazının içeriğini ekleyeceğiz.

Şimdiye kadar da her şey yolunda ancak bundan sonrası biraz uğraştıracak gibi yukarıda yaptıklarımızı özetlemek gerekirse hurriyet.com.tr sitesindeki herhangi bir kategorinin url’sini index.php dosyamızdaki input alanımıza girdik ve getir dedik ardından bizi titlegetir.php dosyasına yönlendirdi ve titlegetir.php dosyasında biz hedef sitemizdeki ve hedef kategorimizdeki başlıkları aldık ve her başlığın yanına bir ekle buttonu koyduk bundan sonraki aşamada ise (icerikekle.php) ekle buttonuna bastığımız zaman hangi yazıyı ekleyeceksek o yazının içeriği, resmi, anahtar kelimeleri vs. bize inputların içine bastıracak ve veritabanına ekle dediğimizde sitemize / veritabanımıza botla verilerimizi çekmiş olacağız. Aslında buraya kadar yaptığımız her şey site URL’sini gönderip sitedeki verilerin başlığını almak, Bundan sonra yapacağımız şey aldığımız başlığa ait bütün verileri kendi sitemize eklemek.

İcerikekle.php Dosyasının Kodları :

<?php
$vericek = $_GET[‘veri’];
$site = file_get_contents(“http://www.hurriyet.com.tr/$vericek”);

$baslik = explode(‘<meta name=”title” content=”‘,$site);
$baslik = explode(‘” />’,$baslik[1]);

$aciklama = explode(‘<!– C-ON-TEXT_CONTENT_START –> ‘,$site);
$aciklama = explode(‘<!– C-ON-TEXT_CONTENT_END –>’,$aciklama[1]);

$resim = explode(‘<link rel=”image_src” href=”‘,$site);
$resim = explode(‘” />’,$resim[1]);
?>

<form action=”” method=”post”>

<?php
$aciklamaduzelt=strip_tags($aciklama[0]);

echo “Başlık : <input type=’text’ name=’ad’ value=’$baslik[0]‘><br>”;
echo “Açıklama : <textarea style=’width:500px; height:125px’ name=’aciklama’>$aciklamaduzelt</textarea><br><br>”;
echo “Resim URL : <input type=’text’ name=’key’ value=’$resim[0]‘ /><br>”;

?>

<p align=”left”><input type=”submit” name=”gonder” value=”Siteme Ekle” /></p>

İcerikekle.php dosyasının açıklaması : İndex.php dosyasından sitenin çekilecek kategorisini inputa girip Titlegetir.php dosyasına gönderdik ardından titlegetir.php dosyasında hedef sitenin kategorisindeki başlıklar listelendi ve her başlığın karşısında ekle buttonu koyduk ardından ekle buttonuna basıldığında İcerikekle.php dosyamıza yönlendirdi ve bu dosyamızda biz hedef sitemizin kaynak kodları sayesinde Konu başlığı, Konu içeriği ve hatta konu resminin url’sini alıp input değerlerine girdik ve “Siteme Ekle” buttonuna basıldığında kendi sitemize eklenecek hale getirdik bizim burada yaptığımız şey size mantığı ve yürümeniz gereken yolun %80′ini yürüttük size sadece kayıt yapmak kalıyor, Kayıt yapmayı neden göstermediniz diye soracak olursanız size hak veriyorum ancak kullandığınız scripti bilmediğimiz için bunu anlatmamız mümkün değil.

Bir sonraki derslerimizde resmi kendi sunucunuza çekme, WordPress scriptlere PHP Botu yapmak ve hatta çekilen içeriği ÖZGÜNLEŞTİREREK EŞ ANLAMLILARIYLA DEĞİŞTİREREK Kendi sitenize eklemek gibi detaylara girmeyi düşünüyoruz, Yorumlarınız ve ilginiz doğrultusunda diğer konulara değineceğiz.


CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz