PHP CURL İle Trendyol'dan ürün bilgilerini çekmek

PHP Trend Makale

Bu uygulamamız da PHP CURL ile Trednyol, Gittigidiyor, Hepsiburada gibi web sitelerinden istediğimiz ürün bilgilerini çekebileceğiz.

Adım 1: CURL oluşturalım

if (@$_POST["submit"]) {
	function siteAdresi($site){
		$ch = curl_init();
		$hc = "YahooSeeker-Testing/v3.9 (compatible; Mozilla 4.0; MSIE 5.5; Yahoo! Search - Web Search)";
		curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com');
		curl_setopt($ch, CURLOPT_URL, $site);
		curl_setopt($ch, CURLOPT_USERAGENT, $hc);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		$site = curl_exec($ch);
		curl_close($ch);
		return $site;
	}
	
	function search($start, $end, $string){
		@preg_match_all('/' . preg_quote($start, '/') .
		'(.*?)'. preg_quote($end, '/').'/i', $string, $m);
		return @$m[1];
	}

	$veri= siteAdresi($_POST["kanalgir"]);
	$itemName = search('<meta name="twitter:title" content="','"',$veri)[0];
	$itemPrice = search('<meta name="twitter:data1" content="','"',$veri)[0];
	$itemImg = search('<meta name="twitter:image:src" content="','"',$veri)[0];

Adım 2: Formu oluşturalım

<hr>
<form action="" method="POST">
	<input type="text" name="kanalgir" placeholder="Trendyol ürün bağlantısı">
	<input type="submit" name="submit" value="Ara">
</form>

<table border="1">
	<thead>
		<th>itemImg</th>
		<th>itemName</th>
		<th>itemPrice</th>
	</thead>
	<tbody>
		<tr>
			<?php if (!empty($itemImg)): ?>
				<td><img src="<?php echo $itemImg ?>" width="50"></td>
			<?php endif; ?>
			<?php if (!empty($itemName)): ?>
				<td><?php echo @$itemName; ?></td>
			<?php endif; ?>
			<?php if (!empty($itemPrice)): ?>
				<td><?php echo @$itemPrice; ?>₺</td>
			<?php endif; ?>
		</tr>
	</tbody>

İnputa trendyoldan aldığımız bir ürün linkini girmemiz yeterlidir, CURL ile yaptığımız bu küçük uygulama ürünün Adını, Resmini ve Fiyatını bize getirecektir.

Trendyol, GittiGidiyor, Hepsiburada, N11, PttAvm, Çiçeksepeti sitelerinden ürünün Adı, Fiyatı ve Resmini çekebileceğiz dosyları Github'da paylaştım, hemen indirebilirsiniz.


Yorumlar (1)

  • Sercan 2 ay önce

    Merhaba, ürünlerdeki bedenleri vs alıyorum fakat renk seçeneklerindeki urlleri kaynak dosyasında bulamıyorum. Nasıl bir yol izlemem gerektiğini söylemeniz bile yeterli olabilir :) Yanıtla

    • Emin Yılmaz 2 ay önce

      Merhaba Sercan, Eğer istediğiniz veri incele kısmında çekemezsiniz diye düşünüyorum, çünkü trendyol gibi yazılımlar bazı verileri javascript üzerinden gönderebiliyor. Aslında bu basit uygulama çok basit yerlerde kullanılabilecek bir şey. Daha sağlam olması için ilgili API'si varsa onu kullanabilirsiniz.