Mayıs 31, 2008

python google ajax api

Google arama servisi için SOAP servisini kaldırdı ve artık ajax api sunuyor. Peki bu verilen api'yi python'da nasıl kullanırız? Buyrun cevabı aşağıda:


#!/usr/bin/python
import urllib
import simplejson
for x in range(0,32,4):
  query = urllib.urlencode({"v": "1.0", "q" : "\"necati demir\" linux", "start" : x})
  url = "http://ajax.googleapis.com/ajax/services/search/web"
  search_results = urllib.urlopen(url+"?%s" % query)
  json = simplejson.loads(search_results.read())
  try:
   results = json["responseData"]["results"]
   for i in results:
    print i["title"]
    print i["url"]
    print i["cacheUrl"]
    print "-----------------------"
  except: pass


En fazla 32 sonuc dönebiliyor (bana 28'den fazla donmedi) ve paging şeklinde, yani her sayfada 4 tane sonuc dönüyor, bu sebeple her sayfada sorgu yaparken start değişkenini 4 arttırıyorum. json formatında gelen veriyi işleyip ekrana yazdırıyorum.
Not: Ne egoist adamım, aranan cümleye bakar mısınız? :)

3 yorum:

colibasil dedi ki...

buradaki
{"v": "1.0", "q" : "\"necati demir\" linux", "start" : x}

v 1.0 ve q değerleri ne anlama geliyor. sandece necati demir linux yazsak nasıl bir yorumlama olurdu?

Necati DEMiR dedi ki...

v->version
q->query

colibasil dedi ki...

peki bu API'yi pythonda denedim makyajladım ama Türkçe karakter desteklemediğini gördüm. dha doğrusu Türkçe karakterli arama yapıyor ama python da çalıştırdığımda Windows komut satırında Türkçe karakterlr bozuk.