Google Search API ile ajax arama



Benzer belgeler
Facebook connect ile kullanıcı giriş çıkış

Tek dosyalı projeler (siteler) üretmek

<html> <head> <title>sayfa Başlığı</title> </head> <body> Bu benim ilk sayfam <b>bu metin koyu</b> </body> </html>

PHP ile İnternet Programlama

Interprise. Ülker İletişim Web Servisi. Bu doküman Ülker iletişim web servisi hakkında teknik açıklamaları içerir. İletişim web servisi web adresi :

PROGRAMLAMA DERSİ 1. İNTERNET

1.PROGRAMLAMAYA GİRİŞ

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

Metin Text Kutuları. Metin kutusu oluşturmak için <input> tagı kullanılır.

Basit bir web uygulaması

Android Ders Notları

JSON Korsanlığı. Mesut Timur, Şubat 2010, WGT E-Dergi 4. Sayı

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Raptadmin 1.x.x Sürümleri için Kullanım Klavuzu

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

8. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

ÖĞRENME FAALİYETİ 1 ÖĞRENME FAALİYETİ 1 1. FORMLAR

Web 2.0 Örnek Eğitim Notu

HSancak Nesne Tabanlı Programlama I Ders Notları

HTML & CSS. Öğr.Gör. M.Ersin AKAY

3. Metin ve Görünüm Etiketleri

jquery kütüphanesini sayfaya eklemek için iki yöntem vardır. 1. Direkt jquery nin sitesinden ekleme

AKINSOFT Web Emlak. Yardım Dosyası. Copyright 2011 AKINSOFT. Sayfa 1. Doküman Versiyon : Tarih :

HESAP MAKİNASI YAPIMI

E-Firma Rehberi Sistemi Plus

Ekran Çıktısı. FONT-WEIGHT: bold; COLOR: #00688F; FONT-FAMILY: Tahoma, Arial, sans-serif; style="text-decoration none" }

C# ile e-posta Göndermek

JAVASCRİPT ÖRNEKLERİ

Enlil programını açtığımızda karşımıza gelen ilk ekrandır.bu ekranda özel tanımlanmış kullanıcı kodu ve parola ile programa giriş sağlanmaktadır.

PHP I PHP I. E. Fatih Yetkin. 26 Eylül 2011

FireBug eklentisini eklentiyi yazan sitesinden veya FireFox un eklentiler indirebilirsiniz.

Dinamik Kodlama. [X] [X] Yeni Fonksiyon

Kullanım Kılavuzu Milli Eğitim Bakanlığı 2010

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Internet ve Bilgi Teknolojileri (BİL 309) Dersi

AJAX nedir? AJAX nasıl çalışır? AJAX. Tahir Emre KALAYCI. Sunucu Yazılım Teknolojileri

WEB FORMLARI. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

Response : Sunucunun istemciye veri yollamasını

Mikro Ayarları. Mikro Programının kurulu olduğu veritabanı ve web servisi için bağlantı ayarlarının yapıldığı menüdür.

Üst Düzey Programlama

Arama motoru: kuş gribinin etkileri

Öğr. Gör. Serkan AKSU 1

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 5

Javascript Ders Örnekleri -2. Tarayıcı Görüntüsü


IEEE Xplore KULLANIM KILAVUZU

görüntüleyebilirsiniz. HTML, programlama dilleri bir programlama mantığı taşımadığından öğrenilmesi gayet kolay bir dildir.

3-Hafta Genel Sayfa Yapısı. Semantik Web Nedir? SEO Nedir? Sayfa Başlığı (Title) Konu Başlıkları (Heading) Genel Sayfa Düzeni

Uygulama web, ios ve Android platformlarında sorunsuz bir şekilde çalışmaktadır.

Ders 4: Diziler (Arrays( Arrays) barisgokce.com

GoFeed Kullanıcı Arayüzü

AKINSOFT E-Mutabakat. Yardım Dosyası

Sonuçlar. Anket Hızlı İstatistikler Anket 'HAVA LOJİSTİĞİ PROGRAMI ANKET ÇALIŞMASI'

Sunucu Taraflı JavaScript ile Gerçek Zamanlı Web Uygulamaları Geliştirme

2-Hafta Temel İşlemler

ASP.NET ile Bir Web Sitesi Oluşturma

24 Kasım 2011 / Perşembe

Algorithm of Your Life. AJAX ve...

Mobil Uygulama Geliştirme Yaklaşımları, Web Tabanlı Mobil Uygulama Çatıları. Burak USGURLU

Kurumsal Grup E-Posta Eğitim Dokümanı

EKLENTİLERLE ETKİLİ DSPACE; SOSYAL MEDYA, İSTATİSTİK, VERİ AKTARIMI VE KISAYOLLAR

BMT 202 Web Tasarımı Bahar Dönemi. Yük. Müh. Köksal GÜNDOĞDU 1

Kurulum 14 FTP ye Bağlanmak ve Dosyaları Atmak 14 Veritabanı Oluşturulması ve Bağlanıp Kurulumun Tamamlanması 15

Testimizin ilk sayfası: bu kısımda kullanıcıdan adını girmesini ve teste başlamasını istiyoruz.

BİL-341 ALGORİTMALAR BÜYÜK O NOTASYONU AHMET ATAKAN atakanahmet@hotmail.com KIRGIZİSTAN-TÜRKİYE MANAS ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ

Analiz Raporu. Projenin amacının, konusunun, işlevinin ne olacağı, hangi yazılımlar kullanılacak gibi parametrelerin belirlenmesi.

Web Tarayıcıları ve Arama Motorları

TESTOSİS KULLANIM KLAVUZU Sisteme Giriş: adresinden yapılmaktadır.

AÇIK KAYNAK KODLU ADRES ARAMA MOTORU TASARIMI VE YENİ BİR ADRES BULMA YAKLAŞIMI

VET ON KULLANIM KLAVUZU

MUĞLA SITKI KOÇMAN ÜNİVERSİTESİ MUWİS. Web İçerik Sistemi. Bilgi İşlem Daire Başkanlığı-WEB GRUBU

MEBİS Kullanım Kılavuzu. Öğrenci İstanbul Medipol Üniversitesi

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. 26 Şub Öğr. Gör.

Aynı tipten çok sayıda değişken topluluğudur. X Y Score1 Score2 (0) (1) (2)...

YZM 3215 İleri Web Programlama

Dış Kurum Entegrasyonları TURKPOS API. Yardım Dokümanı

E-postalarınıza HTML imza ile daha ilgi çekici olun

Fiyat Farkı Faturası

Web Formlar ve Sayfalar Arasında Bilgi Gönderme. BATML İnternet Programcılığı 1

Conficy Efficy 2014 Kullanıcı Kılavuzu. Oturum Açma. Ana Ekran. Alan Ekleme. Formlar

WebSiteDefender ile Web Uygulama Güvenliği

WEB TASARIM. CSS, IFRAME, TEMPLATE, SLICE, INCLUDE(php komutu) Tarık ÖZEL

Luca NET Kobi Ticari Yazılımında ilk yapılacaklar

Samsun Çocuk Hizmetleri İ l Koordinasyon Sekretarya Birimi

Yukarıdaki örnekte görüldüğü üzere her php komut satırı noktalı virgül (;) ile biter.

XSS Exploitation via CHEF

MEBWEB OKUL/KURUM WEB SİTELERİ KULLANIM KLAVUZU TEMEL İŞLEMLER

Proje 1. Arayüz Tasarımı

Q-Biz İş Zekası 5.1. Versiyon Yenilikleri

WEB TASARIM I. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

Aşağıdaki programı inceleyip ekrana ne yazacağını söyleyebilir misiniz?

JavaScript Örnekleri PDF

Arayüz Geliştirme Dokümantasyonu

01 HAZİRAN 2015 İZİBİZEDEFTER SON KULLANICI KLAVUZU

GOLDMESAJ SMS API DÖKÜMANI

LUCA DEFTER BEYAN SİSTEMİ GENEL ANLATIM

İskambil Kağıtları. Bir İskambil kağıdı

Ortak Dersler Sanal Sınıf Sistemi Kullanım Kılavuzu

Temel Bilgisayar Terimleri Yrd. Doç. Dr. Devkan Kaleci

BİT ini Kullanarak Bilgiye Ulaşma ve Biçimlendirme (web tarayıcıları, eklentiler, arama motorları, ansiklopediler, çevrimiçi kütüphaneler ve sanal

Transkript:

Google Search API ile ajax arama 14 Ağustos Salı 12 http://mfyz.com/google-search-api-ile-ajax-arama Eğer bir kaynak arıyorsanız, indexlerin güncelliği, genişliği gibi nedenlerden dolayı, diğer arama motorları yerine Google'ı tercih etmek, iyi bir karar olarak düşünülebilir. Yaptığınız Google aramalarını programatik olarak yapmak ve sonuçları herhangi bir şekilde kullanmanın sayısız örneği verilebilir. Örneğin, sayfanıza site içi arama eklemek istiyorsunuz. Sayfanıza ait içeriği eğer Google zaten tarıyorsa, site içi aramanız aslında basit bir Google araması ile yapılabilir. Biliyorsunuz Google'da "site:mfyz.com" şeklinde arama yapılacak domaini filtreleyebiliyorsunuz. Dolayısıyla site içi aramanızı, herhangi bir algoritma yazmaya gerek kalmadan, hatta sadece tarayıcıda javascript ile yapabilirsiniz. Google'un istemci altyapıları için sunduğu JSON tabanlı bir arama APIsi var. Bu api sayesinde normal bir Google araması yapabiliyorsunuz. Bu API'yi basit bir HTTP isteği ile kullanabiliyorsunuz. Herhangi bir Google araması yapıyormuş gibi bir sorgu gönderip cevabını json olarak alıp işleyebiliyorsunuz. http://ajax.googleapis.com/ajax/services/search/web?v=1.0 Aramanızı bu URL'e gerekli parametreleri ekleyerek yaptığınızda Google en fazla 8 sonuç verecek şekilde dönüyor. Cevap olarak dönen JSON içeriği uzun olduğu için burada göstermeyeceğim. Ama birkaç parametreyle gelen sonuç kümesini kullanabilir, sayfalama ve sonuç boyutu gibi parametreler ile sayfalama yapabilirsiniz. Asıl kullanacağınız sonuç değeri, arama sonuçlarının bulunduğu response.responsedata.results sonuç kümesi olacaktır. Basit bir nesne dizisi olan bu değeri javascript ile ekrana doğrudan basabilir veya sunucu taraflı bir kod ile işleyebilirsiniz. Sayfa 1 / 5

Google bu API ile tek istekte en fazla 8 sonuç döndürüyor. Nedenini kesin bir şekilde bilmiyorum fakat güvenlik nedeniyle olduğunu tahmin ediyorum. Eğer 8'den fazla sonuç göstermek istiyorsanız birden fazla api çağrısı yapmak zorundasınız veya istemci tarafında sayfalama yaparak sonuçları sayfalama ile gösterebilirsiniz. Sayfalama için API çağırısında göndereceğiniz start parametresi, arama sonuçlarının başlangıç sırasını belirtiyor. Eğer belirtilmezse geçerli değeri 0 olacaktır. Bundan sonra 8, 16, 24... şeklinde ikinci, üçüncü sayfaya ait sonuçları, ek çağrı yaparak yükleyebilirsiniz. Burada kontrol etmeniz gereken tek şey, toplam bulunan sonuç kümenizde yeterli sonuç olup olmamasıdır. Yani eğer kullanıcı son sayfada ise "Sonraki Sayfa" linkini göstermemeniz gerekir. Basit bir sayfalama için; toplam sayfa say?s? = toplam sonuç say?s? / sayfa ba??na dü?en sonuç s ay?s? bölümünün üste yuvarlanması ile bulunur. Bunu Google size toplam bulunan sonuç sayısını tahmini şekilde söylüyor. Sonuç kümesindeki response.responsedata.cursor.estimatedresultcount parametresi size sayısal olarak tahmini sonuç sayısını söyleyecektir. Sayfa sayısını hesaplayarak gerekli sayfalama navigasyonunu oluşturabilirsiniz. Örneği kodlayalım Yazının başlarında verdiğim site içi arama örneğini javascript ile kodlayalım. Doğrudan tüm kodu verip açıklayacağım. <!doctype html> <html> <head> <title>page</title> <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script> </head> <body> <input type="text" placeholder="search" id="searchinput" /> <input type="button" value="search" id="searchbutton" /> Sayfa 2 / 5

<ul id="searchresultslist"></ul> </body> </html> HTML tarafında ihtiyacınız olan iki ana parça, arama formu ve sonuçları listeleyeceğiniz bir tablo veya liste. Javascript tarafını jquery kullanarak yazarak HTTP çağrısını, JSON sonucunu işleme, html elemanlarını yönetme gibi birçok kısmı kolayca halledebilirsiniz. İlk yapmamız gereken şey arama formundan arama sorgusunu yakalamak ve arama butonundaki tıklama hareketini yakalamak olacak. Bunun için butonun tıklama olayını yakalayıp text alanının içeriğini alıyoruz. $(function(){ $('#searchbutton').click(function(){ search(); ); ); function search(){ query = $('#searchinput').val(); $('#searchresultslist').html('<li class="loading"><span>aran?yor... ( Google Search)</span></li>'); loadresults(query, 0); Google'un arama APIsini basit bir HTTP isteği ile kullanacağımızı söylemiştim, sonuç bir json nesnesi olduğu için jquery'nin http istek yardımcı methodlarından getjson methodunu kullanarak hem isteği yönetebilir hem de cevabı işleyebiliriz. function loadresults(query, start){ var apiurl = 'http://ajax.googleapis.com/ajax/services/search/web? v=1.0&callback=?'; $.getjson(apiurl, { q: query + ' site:mfyz.com', Sayfa 3 / 5

rsz: 8, start: start, function(response){ var results = response.responsedata.results; move(); $('#searchresultslist.nextpage, #searchresultslist.loading').re resultshtml = ''; if(results.length){ for(var i=0; i < results.length; i++){ r = results[i]; resultshtml += '<li><a href="' + r.unescapedurl + '"><span class="title">' + r.title + '</span><span class="preview">' + r.content + '</span></a></li>'; if (response.responsedata.cursor.estimatedresultcount > 8) { resultshtml += '<li class="nextpage"><a href="#" ' + 'onclick="loadresults('' + query + '', ' + (start + 8) + ');">Daha fazla sonuç göster</a></li>'; else { //resultshtml = '<li class="notfound">arad???n?z kriterde içerik bu lunamad?.</li>'; $('#searchresultslist').append(resultshtml); ); Yukarıdaki javascript methodu basit bir HTTP çağrısı yapıp gelen json cevabını işliyor. Basitçe bir liste elemanı (ul) içeriği oluşturuyoruz. Gelen sonuç dizisini bir HTML koduna dönüştürüyoruz. Methodun sonunda ise oluşturulan HTML kodunu liste elemanınımıza ekliyoruz. Bu methodda gördüğünüzü ilk parametre, arama formundan gelen arama sorgusu, Sayfa 4 / 5

Powered by TCPDF (www.tcpdf.org) ikinci parametre ise, sayfalama için Google APIsine gönderilecek olan sonuç başlangıç indeksi. Bu sayede bu fonksiyonu tekrar çağırarak ikinci, üçüncü ve diğer sayfalardaki arama sonuçlarını yükletebiliyoruz. İlk arama yapılırken yani yukarıda ilk verdiğim javascript kodunda çağırılan arama methodu "0" başlangıç parametresi ile çağrılıyor. Bu methodda dikkatinizi çekmiş olan bir nokta da arama parametresin sonuna "site:mfyz.com" eklemiş olmam. Sorguya eklenen bu kısım, yapılan aramanın sonuçlarında sadece o domain'deki sayfaları döndürmesini sağlayacaktır. Yukarıdaki HTML çıktısını CSS ile işleyebilirsiniz veya arama formunu "ara" butonu ile değil eş zamanlı arama gibi her tuşa basıldığında belirli bir zaman aşımı ile girilen kelimeyi yakalayıp arama yapabilirsiniz. Bu yazı http://mfyz.com/google-search-api-ile-ajax-arama adresinden indirilmiştir. Sayfa 5 / 5