Curl ile Google Görsellerdeki Resimleri Çekme
Sitemizdeki yazıları arşivleyen Google, kullandığımız resimleri de bizlerin yararına sunma adına uzun zamandır böyle bir hizmete sunmuştur. Genelde Google Görsel arama motorunu duvar kağıdı yapmak, ufak tefek resimlerle yapmış olduğum yazılımları süslemek için kullanmaktayım.
Bu yazımızda sizlere Ajax methodunu kullanarak curl ile Google Görsellerdeki resimleri aramayı göstermeye çalışacağım. Bu şekilde dilerseniz otomatik sitenize resimler ekleyebilir, dilerseniz belli kategorilerdeki resimlerin içinden istediğinizi alabilirsiniz.
Bu uygulamamızda bilmemiz gereken temel bilgi aşağıdaki adresten google görsellerine ait bilgiyi çekebilecek olmamız.
http://ajax.googleapis.com/ajax/services/search/images?v=1.0&hl=tr&q=Aranan Kelime
Bu adresteki q değişkenine dinamik olarak ajax ile göndereceğimiz değerin sonucunu php ile yorumlayıp javascript ile tarayıcıya aktaracağız.
Index.html – Anasayfamız içeriği
<!DOCTYPE html> <HTML> <HEAD> <TITLE>Google Görsellerde Ara</TITLE> <meta charset="UTF-8"> <STYLE> BODY {FONT-FAMILY: arial,sans-serif;} TD {FONT-FAMILY: arial,sans-serif;} A {FONT-FAMILY: arial,sans-serif;} P {FONT-FAMILY: arial,sans-serif;} .h {FONT-FAMILY: arial,sans-serif;} .h {FONT-SIZE: 20px;} .q {COLOR: #0000cc;} #result{display: table-cell;} #result ul {margin: 0px;padding: 0px;} #result li {margin: 0px;padding: 0px;float: left;width: 200px;list-style: none;} </STYLE> <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script> <BODY text="#000000" vLink="#551a8b" aLink="#ff0000" link="#0000cc" bgColor="#ffffff"> <CENTER> <TABLE cellSpacing="0" cellPadding="0" border="0"> <TBODY> <TR> <TD> <IMG height="110" alt="Google" src="http://upload.wikimedia.org/wikipedia/commons/5/51/Google.png" width="276" /> </TD> </TR> </TBODY> </TABLE> <BR /> <FORM id="f" action="#" method="post"> <TABLE cellSpacing="0" cellPadding="4" border="0"> <TBODY> <TR> <TD class="q" noWrap> <FONT size=-1> <A class="q" id="1a" href="http://www.google.com.tr/?hl=tr&tab=wi&ie=UTF-8&oe=UTF-8">Web</A> <B><FONT color="#000000">Görseller</FONT></B> <A class="q" id="2a" href="http://www.google.com.tr/grphp?hl=tr&tab=wg&ie=UTF-8&oe=UTF-8">Gruplar</A> <A class="q" id="4a" href="http://www.google.com.tr/nwshp?hl=tr&tab=wn&ie=UTF-8&oe=UTF-8">Haberler</A> <B><A class="q" href="http://www.google.com.tr/options/index.html">daha fazlası »</A></B> </FONT> </TD> </TR> </TBODY> </TABLE> <TABLE cellSpacing="0" cellPadding="0"> <TBODY> <TR> <TD width=75> </TD> <TD align="middle"> <SPAN id="hf"></SPAN> <INPUT maxLength="256" size="55" name="q" /> <BR /> <INPUT type="submit" value="Google Görsellerde Ara" name="btnG" /> <INPUT type="submit" value="Kendimi Şanslı Hissediyorum" name="btnI" disabled /> </TD> <TD vAlign="top" noWrap> <FONT size=-2> <A href="http://www.google.com.tr/advanced_search?hl=tr">Gelişmiş Arama</A><BR> <A href="http://www.google.com.tr/preferences?hl=tr">Tercihler</A><BR> <A href="http://www.google.com.tr/language_tools?hl=tr">Dil Ayarları</A> </FONT> </TD> </TR> </TBODY> </TABLE> </FORM> <div id="result"></div> <BR /><BR /> <FONT size=-1> <A href="http://www.google.com.tr/ads/">Reklam</A> - <A href="http://www.google.com.tr/services/">İşletme</A> - <A href="http://www.google.com.tr/about.html">Hakkında</A> <SPAN id="hp" style="BEHAVIOR: url(#default#homepage)"></SPAN> </FONT> <P><FONT size=-2>©2004 Google Tasarımı</FONT></P> </CENTER> <script type="text/javascript"> $(document).ready(function(){ $('#f').submit(function(event){ event.preventDefault(); var q = $('input[name="q"]').val(); if ( !q ){ return; } $('#result').html('Yükleniyor...'); $.ajax({ type: "POST", dataType:"json", url: 'ajax.php?q=' + q, success: function(msg){ if ( msg.islemSonuc ){ var tmpHtml = '<ul>'; $(msg.islemMsj).each(function(key,value){ tmpHtml += '<li> <a href="'+(value.url)+'" target="_blank"><img src="'+value.tbUrl+'" /></a> </li>'; }); tmpHtml += '</ul>'; $('#result').html( tmpHtml ); } else { alert( msg.islemMsj ); } } }); }); }); </script> </BODY> </HTML>
ajax.php – Ajax dosyamız
<?php $tmpHTML = array('islemSonuc' => false, 'islemMsj' => 'Eksik veya hatalı işlem'); if ( isset($_GET['q']) && $_GET['q'] ){ $q = urlencode( $_GET['q'] ); $googleURL = 'http://ajax.googleapis.com/ajax/services/search/images?v=1.0&hl=tr&q=' . $q; if ( $fileContent = file_get_contents( $googleURL ) ){ $fileContent = json_decode( $fileContent ); if ( isset($fileContent->responseData->results) ){ $tmpHTML['islemSonuc'] = true; $tmpHTML['islemMsj'] = array(); foreach($fileContent->responseData->results as $key => $value){ $tmpHTML['islemMsj'][] = array('tbUrl' => $value->tbUrl, 'url' => $value->url); } } } } echo json_encode($tmpHTML); ?>
Çok teşekkürler. Sadece 4 veri geliyor, bunu arttırabilmemiz mümkün mü ?
Hocam örnek linkteki uygulama çalışmıyor. Acaba nedendir?
Google bu servis erişim hizmetini durdurmuş. API tarafında işlem yapmak gerekecektir.
Bununla alakalı örneği yakın zamanda paylaşmaya çalışacağım.
api li dosyayı merak ediyorum
Liste oluşturuyorum hocam yakın zamanda neden olmasın 🙂