Tam Sürümünü Görmek İçin : GOOGLE API ile Site içi arama
google in api sini kullanarak site içi arama yapan bir ornek var mı_?
ben sitesindeki ornekleri bir turlu çalıştıamadım. Almış olduğum key in doğruluğunu kontrol ettim sorun yoktu.
isenturk
20/12/2006, 11:29
forumda ilgili bir örnek vermiştim zamanında ararsanız bulursunuz
arama.php
<?
error_reporting(0);
$yourGoogleKey = "google-key";
$yourWebsite = "www.internet.com.tr";
require_once("nusoap.php");
$query = $_REQUEST["query"];
$start = $_REQUEST["start"];
if ($query)
{
$q = urldecode($query);
$q.= " site:".$yourWebsite;
if(!isset($start)) { $start=0; } else { $start = intval($start); }
$parameters = array(
"key" => $yourGoogleKey, // google developer key
"q" => $q, // search query
"start" => $start, // result start index
"maxResults" => 10, // 10 is the maximum
"filter" => false, // filtering similar entries
"restrict" => "", // country and topic restrictions
"safeSearch" => false, // adult content filter
"lr" => "", // language restrictions
"ie" => "", // deprecated and ignored parameter
"oe" => "" // deprecated and ignored parameter
);
$soapclient = new soapclient("http://api.google.com/search/beta2");
$result = $soapclient->call("doGoogleSearch", $parameters, "urn:GoogleSearch");
$begin = $start + 1;
$end = $start + $parameters["maxResults"];
$total = $result["estimatedTotalResultsCount"];
if ($total > 1000) $total = 1000;
}
//----------------------------------------------------------------------------------------------
// html headers, stylesheet and search form
//----------------------------------------------------------------------------------------------
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>INTERNET.COM.TR</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script language="javascript">
function checkform (form)
{
if (form["query"].value == "")
{
alert("Arama için kelime girmelisiniz.");
form["query"].focus();
return false ;
}
return true;
}
</script>
</head>
<body>
<table align="center" width="775" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="2" valign="top">
<div id="icerik">
<table width="500" cellspacing="1" cellpadding="6" border="0" bgcolor="#E1E4E5" >
<tr>
<td>Arama</td>
</tr>
<form name="googleFrm" method="post" action="arama.php" onsubmit="return checkform(this);">
<tr bgcolor="#F7F7F7">
<td colspan="2" valign="middle">
<input type="text" name="query" class="textFrm" style="width:400px">
<input type="submit" name="submit" value="Ara" class="butFrm">
</td>
</tr>
<input type="hidden" name="www" value="false" class="radioFrm" checked>
</form>
<?
if ($query)
{
if ($total > 0){
echo '
<tr>
<td colspan="2">'.$query.' için arama sonuçları. Toplam '.$total.' sonuçtan '.$begin.' - '.$end.' arası.
</td>
</tr>';
}
if($total > 0)
{
if ($total > 1000)
{
$tots = 1000;
} else {
$tots = $total;
}
$totpage = floor($tots / 10);
$suanda = intval($_GET['start']);
$sayfam = floor($suanda/10);
$baslangic = $sayfam - 7;
$bitis = $sayfam + 9;
if($bitis > $totpage)
{
$bitir = $totpage;
} else {
$bitir = $bitis;
}
if($baslangic < 0)
{
$basla = 1;
if($tots > 16)
{
$bitir = 17;
} else {
$bitir = $tots;
}
} else {
$basla = $baslangic;
}
echo '<tr><td bgcolor="#F7F7F7" colspan="2">';
for($p = $basla; $p <= $bitir; $p++)
{
$k = ($p-1) * 10;
if($sayfam == ($p-1))
{
echo '<b>'.$p.'</b> | ';
} else {
echo '<a href="arama.php?query='.$query.'&start='.$k.'">'.$p.'</a> | ';
}
}
echo '</td></tr>';
}
if ($total == 0){
echo '<tr><td></td><td class="alert">'.$query.' için sonuç bunulamadı ..</td></tr>';
}
if ($total > 0)
{
$result = $result["resultElements"];
if(intval($start / $parameters["maxResults"]) == (intval($total/$parameters["maxResults"]))) $parameters["maxResults"] = $total % 10;
for ($i = 0; $i < $parameters["maxResults"]; $i++)
{
$element = $result[$i];
$url = $element["URL"];
$title = $element["title"];
$snippet = $element["snippet"];
if ($url != "")
{
echo '<tr><td width="1%" bgcolor="#FFFFFF">'.($i+$begin).'.</td><td width="99%" bgcolor="#FFFFFF"><a href=\''.$url.'\'>'.$title.'</a><br />'.$snippet.'</td></tr>';
}
}
}
if ($total > 0)
{
if ($total > 1000)
{
$tots = 1000;
} else {
$tots = $total;
}
$totpage = floor($tots / 10);
$suanda = intval($_GET['start']);
$sayfam = floor($suanda/10);
$baslangic = $sayfam - 7;
$bitis = $sayfam + 9;
if($bitis > $totpage)
{
$bitir = $totpage;
} else {
$bitir = $bitis;
}
if($baslangic < 0)
{
$basla = 1;
if($tots > 16)
{
$bitir = 17;
} else {
$bitir = $tots;
}
} else {
$basla = $baslangic;
}
echo '<tr><td bgcolor="#F7F7F7" colspan="2">';
for($p = $basla; $p <= $bitir; $p++)
{
$k = ($p-1) * 10;
if($sayfam == ($p-1))
{
echo '<b>'.$p.'</b> | ';
} else {
echo '<a href="arama.php?query='.$query.'&start='.$k.'">'.$p.'</a> | ';
}
}
echo '</td></tr>';
echo '<tr>
<td colspan="2">
'.$query.' için arama sonuçları. Toplam '.$total.' sonuçtan '.$begin.' - '.$end.' arası.
</td>
</tr>';
}
}
echo '</table>';
//----------------------------------------------------------------------------------------------
// html credits and footer
//----------------------------------------------------------------------------------------------
?>
</div>
</td>
</tr>
<tr>
<td class="ustmenu" style="height:40px;text-align:center;border-top:2px solid #99CC00;" width="775" colspan="2">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="600">
Copyright © 2005 internet.com.tr. Telif Hakları İnternet Webtasarım ve Bilişim Hizmetleri' ne Aittir. </td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
</center>
</body>
</html>
kendinize göre değiştirirsiniz.
kodlar içinde:
require_once("nusoap.php");
var.
bununda olması gerek miyor mu?
nusoap burdan indirebilirsin. Ayrıca google çeşitli dillerde kod örneği vermesi gerekir. Çünkü yahoo da yanı şekilde API hizmeti veriyor ve orda her dil için örnek uygulamlar var.
http://sourceforge.net/project/showfiles.php?group_id=57663
bide arama yaparken bazen sonuç gelmiyor boş sayfa geliyor. connection dan sanırım .
arama yaparken çıkacak olan sonuçlar onceden google tarafından indexlenmiş olması mı gerekiyor?
benim denemem de hiç bir sonuç alamadım. ne yazarsam yazayım sonuç bulunamıyor diyor
evet aramayı google da yapıyor.
kelime site:siteadres.com
diye google da arama yapın ordada çıkmıyorsa sorun yok demektir. sayfaları google ekletmek icin sitemap kullanabilirsiniz çok hızlı bir yontem eger sayfalarınız indeksli değilse.
ben google apiyi python ile kullandiggimdan cokda güzel calimisti
tek bir sorun vardi. oda günde sadece beli sayida sorgu yoluyabiliryorsunuz...
ben hala sonuç alamadım. indexlenmiş sayfalarla ilgili kelimelerde dahi sonuç alamıyorum.
acaba sunucu ayarlaır ile ilgili problem olma olasılığı var mı?
bu arada ekte bir çalışma var. onu da denedim aynı şekilde sonuç alamadım.
Ektekini deneyen olursa olumlu ya da olumsuz sonucunu yazarsa sevinirim.
INSTALL dosyasından okuduğum kadarı ile dosyaları /search/ olacak şekilde dizini içerisine atılacak.
search/config/config.php içerisindeki
$apikey - Google API key yazılacak
$search_site - www ve http:// olmayacak şekilde web site domaini
yazılacak şekilde düzenlenecek.
@MEHMET ben denedim ama 10 denemeden sonra 502 Bad Gateway hatası aldım ve öyle devam ediyor. Sanırım belli bir limitden sonra arama desteği kalkıyor.En iyisi yahoo yahoda sorun yok. Ben perl ile denedim.
Forum Yazılımı : vBulletin v3.6.8, Copyright ©2000-2008, Jelsoft Enterprises Ltd.