Bot Yazarak Diğer Sitelerden Veri Çekme Nasıl Yapılır?

Selam olsun tüm kod sever dostlara, Bot yazarak diğer sitelerden veri çekme nasıl yapılır? Sorularınıza istinaden uygulamalıbir örnek yapalım hem kodlarımızı test ederiz hemde yapımını yaparak öğrenmiş olun istedim. Mantık olarak bir url adresine curl ile bağlanarak regex kodlarımız ile bağlandığımız url adresinden sadece istediğimiz yeri taratıp orayı ister veri tabanımıza isterse json dosyası haline getirerek bizim sürekli olarak kullanabileceğimiz bir veri datası haline getireceğiz. Hazırsanız başlayalım.

--) Curl kodumuz ile bağlanmak istediğimiz site adresini tanımlayarak başlayalım işe.

  $url="https://www.trendyol.com/";
  $baglan = curl($url);
  //echo $baglan; //var_dump($baglan); 

-- Örnek olsun diye Trendyol.com sitesine bağlanıp Üst Menüsünü yani kategori yapısını çekelim. Html koduna baktığımızda ul class main-nav içinde yer alıyor menü kategori yapısı buraya regex preg_match ile taratalım.

preg_match('#<ul class=main-nav>(.*?)</ul></nav>#', $baglan, $Menu);
	$UstMenuArr = explode("<li class=tab-link>", $Menu[1]);

 -- Tarattığımızda Bize üst kategori (Kadın), alt kategorisi (Giyim) ve onunda alt kategorisi (Elbise) olarak verdiğini yani alt alta 3 kategori yapısının olduğunu görüyoruz.

 -- Şimdi Sıra Geldi Kategori Yapısını. Üst ve alt kategori olarak ayırıp array haline getirmeye...

$UstAltAltMenuArr=array();	$uArr = array(); $uaArr = array(); $uaaArr = array();

	for($ArrID=1; $ArrID<count($UstMenuArr); $ArrID++){
		
		//========Üst Menü (Kadın,Erkek,Çocuk)
		preg_match('#<a href=(.*?) class=category-header>(.*?)</a>#', $UstMenuArr[$ArrID], $UstKatego);
		$ustkatego = $UstKatego[2]; $ustkatUrl = $UstKatego[1];
		$uArrid = $ArrID."_".toAscii($ustkatego);
		$uArrs = array('id'=>$uArrid, 'uid'=>0, 'ukname'=>$ustkatego, 'ukUrl'=>$ustkatUrl);
		array_push($uArr, $uArrs);


		$UstAltMenu = explode("<div class=category-box>", $UstMenuArr[$ArrID]);
		//var_dump($UstAltMenu);
		// ============ Alt Menü ========================
		for($ua=1; $ua<count($UstAltMenu); $ua++){
			preg_match('#<a href=(.*?) class=sub-category-header>(.*?)</a>#', $UstAltMenu[$ua], $UstAltKatego);
			$ustaltkatego = $UstAltKatego[2]; $ustaltkatUrl = $UstAltKatego[1];
			//echo "br--üak: (".count($UstAltMenu)."): ".$ustaltkatego." -- ".$ustaltkatUrl."br";

			
			preg_match('#<ul class=sub-item-list>(.*?)</ul>#', $UstAltMenu[$ua], $UstAltAltMenus);
			preg_match_all('#<a href=(.*?)>(.*?)</a>#', $UstAltAltMenus[1], $UstAltAltMenu);
			//var_dump($UstAltAltMenu);
			$uaArrid = $ArrID."_".$ua."_".toAscii($ustaltkatego);
			// ============ En Alt Menü ========================
			for($uaa=0; $uaa<count($UstAltAltMenu[1]); $uaa++){
				//echo "---üaak: ".$UstAltAltMenu[2][$uaa]." ------ ".$UstAltAltMenu[1][$uaa]."br";
				$uaaArrid = $ArrID."_".$uaa."_".toAscii($UstAltAltMenu[2][$uaa]);
				$uaaArrs = array('id'=>$uaaArrid,'uid'=>$uaArrid,'uaakname'=>$UstAltAltMenu[2][$uaa], 'uaakUrl'=>$UstAltAltMenu[1][$uaa]);
				array_push($uaaArr, $uaaArrs);
			}
						
			$uaArrS = array('id'=>$uaArrid, 'uid'=>$uArrid, 'uakname'=>$ustaltkatego, 'uakUrl'=>$ustaltkatUrl);//
			array_push($uaArr, $uaArrS);
		}
		
	}

 -- Json Haline Getirirken sayfamızın bir json olduğunu belirtmek için sayfanın en başına şu kodları yazalım.

  @header('Content-type: application/json; charset=utf-8');//json encode için gerekli
  @header('Access-Control-Allow-Origin: *');

 --- Curl ve function Kodlarımızı unutmayalım. Onu bir önceki konuda (Bot Yazmak İçin Gerekli Php Kodları Nelerdir?) anlatmıştım gerekli php kodlarını sayfamıza dahil edelim.

Evet kodlarımızıda dahil ettikten sonra tarayıcıda yazdığımız php sayfasını çalıştırlarım. Sizinde böyle bir sonuç geliyorsa sayfanıza adımları doğru yapmış demeksinizdir. Çalışan Trendyol Menü Json Dosyası için Tıklayın!

Bot(Rebot) yazılım ile alakalı diğer konuları incelemeyi unutmayın. Php BotBot Yazmak İçin Gerekli Php Kodları Nelerdir?

 -- Evet kod sever dostlarım umarım bu kodlar üzerinden sitelere bağlanıp verilerini tarayabilirsiniz. Takıldığınız yerde soru sorabilirisniz elimden geldiğince yardımcı olurum.

Görüş Hata Bildir

Güvenlik Kodunuz:

Yorum Yap

Yorum kodunuz:

0.0367