Zomato API ile Python Kullanarak Restoran Verilerine Erişim

Giriş

Zomato, dünya çapında restoranlar, kafe ve barlar hakkında kapsamlı bilgiler sunan bir yemek bulma ve rezervasyon platformudur. Kullanıcıların restoran bulmasını, menüleri görüntülemesini ve kullanıcı yorumlarını incelemesini sağlar. Zomato API, geliştiricilere bu verilere programatik olarak erişim imkanı sunar. Bu makalede, Python kullanarak Zomato API’sinden nasıl yararlanabileceğiniz, restoran bilgilerini nasıl çekebileceğiniz ve verilerinizi nasıl analiz edebileceğiniz konusunda adım adım rehberlik edeceğiz.

Zomato API’ye Giriş

Zomato API, geliştiricilere restoran ilişkili verilere erişim sağlayan bir kaynak olarak öne çıkmaktadır. API, restoranların bilgileri, menü detayları, kullanıcı yorumları gibi birçok farklı bilgi sunar. Zomato API’sini kullanabilmek için ilk olarak bir API anahtarına ihtiyacınız var. Bu anahtarı edinmek için Zomato’nun geliştirici portalına kaydolmanız gerekiyor. Kayıt işleminin ardından, API kullanım şartlarını kabul ederek anahtarınızı elde edebilirsiniz.

API anahtarınızı aldıktan sonra, Zomato API’sinin sunduğu farklı uç noktaları keşfetmeye başlayabilirsiniz. Bu uç noktalar arasında şehir, restoran, kullanıcı yorumları ve daha fazlası hakkında bilgi almak mümkündür. Python ile Zomato API’sine erişim sağlamak için ‘requests’ kütüphanesini kullanacağız; bu kütüphane HTTP istekleri göndermemizi ve yanıtları kolayca yönetmemizi sağlar.

Buna ek olarak, API’den dönen JSON verisini Python’da işlemek için ‘json’ kütüphanesini kullanarak verilerinizi daha verimli bir şekilde analiz edebilirsiniz. Şimdi, API ile nasıl entegrasyon gerçekleştireceğimize ve örnek bir uygulama geliştireceğimize bakalım.

Python ile Zomato API’ye Bağlanma

Zomato API’sine erişmek için öncelikle ‘requests’ kütüphanesini yüklememiz gerekiyor. Eğer bu kütüphane sisteminizde yüklü değilse, kolayca yükleyebilirsiniz:

pip install requests

Ardından, gerekli kütüphaneleri içeri aktararak başlayalım:

import requests
import json

Erişmek istediğimiz uç noktayı belirleyelim. Örneğin, belirli bir şehirdeki restoranları listelemek için kullanacağımız URL, ‘https://developers.zomato.com/api/v2.1/cities’ uç noktasıyla başlayacak. API anahtarımızı ‘headers’ kısmında belirteceğiz:

headers = {
    'Accept': 'application/json',
    'User-Key': 'YOUR_API_KEY'
}

city_name = 'Istanbul'
url = f'https://developers.zomato.com/api/v2.1/cities?q={city_name}'
response = requests.get(url, headers=headers)

Artık yanıtı alabiliriz. Eğer yanıt başarıyla geldi ise JSON formatında verimizi dönecektir, bu nedenle yanıtı kontrol edelim:

if response.status_code == 200:
    data = response.json()
    print(json.dumps(data, indent=4))
else:
    print(f'Hata: {response.status_code}') 

Bu kod parçasıyla, Zomato API’sinden İstanbul’daki şehir bilgilerini başarıyla alabiliyoruz. Şimdi, bu verileri nasıl işleyebileceğimize bakalım.

Veri İşleme ve Restoran Bilgileri

API’den dönen yanıt JSON formatında olduğundan, bu veriler üzerinde işlem yapıp istediğimiz bilgilere ulaşmak için Key-Value yapısını kullanmamız gerekiyor. Örneğin, şehir kimliği alarak o şehre ait restoranları sorgulayabiliriz. Alınan şehir verisini incelemek, şehir kimliğini almak için şu kodu kullanabiliriz:

city_id = data['location_suggestions'][0]['city_id']
print(f'Selected city ID: {city_id}') 

Şehir kimliğini aldıktan sonra, bu kimlik ile restoranları sorgulayabiliriz. Zomato API sayesinde, bir şehirdeki restoranları listelemek için ‘search’ uç noktasını kullanacağız. Şimdi, bu uç nokta için gerekli URL’yi oluşturup isteğimizi yapalım:

url = f'https://developers.zomato.com/api/v2.1/search?entity_id={city_id}&entity_type=city'
response = requests.get(url, headers=headers)

Ve artık restoran verilerimizi alabiliriz:

if response.status_code == 200:
    data = response.json()
    restaurants = data['restaurants']
    for restaurant in restaurants:
        name = restaurant['restaurant']['name']
        address = restaurant['restaurant']['location']['address']
        print(f'Restaurant: {name}, Address: {address}') 
else:
    print(f'Hata: {response.status_code}') 

Bu kod parçacığı, belirli bir şehirdeki restoranların isimlerini ve adreslerini listeleyecektir. Elde ettiğimiz bu verilerle daha fazla analiz yapabiliriz.

Veri Analizi ve Görselleştirme

Artık restoran bilgilerini almışken, bu verileri analiz ederek bazı istatistikler çıkarabiliriz. Örneğin, her restoranda kaç adet inceleme olduğunu veya ortalama puanını hesaplayarak bu bilgileri kullanıcılarımıza sunabiliriz. API’den ayrıca restoranların puan ve inceleme bilgilerine de erişebiliriz:

rating = restaurant['restaurant']['user_rating']['aggregate_rating']
reviews = restaurant['restaurant']['all_reviews_count']
print(f'Rating: {rating}, Reviews: {reviews}') 

Ayrıca, elde ettiğimiz verileri görselleştirmek için ‘matplotlib’ veya ‘seaborn’ gibi kütüphaneler kullanabiliriz. Eğer henüz yüklemediyseniz, şu şekilde yükleyebilirsiniz:

pip install matplotlib seaborn

Verileri görselleştirmek için önce gerekli kütüphaneleri içeri aktaralım:

import matplotlib.pyplot as plt
import seaborn as sns

Örneğin, restoranların ortalama puanlarını bir çubuk grafiği olarak göstermek için aşağıdaki örneği izleyebilirsiniz:

ratings = [float(restaurant['restaurant']['user_rating']['aggregate_rating']) for restaurant in restaurants]
labels = [restaurant['restaurant']['name'] for restaurant in restaurants]
plt.figure(figsize=(10, 5))
sns.barplot(x=labels, y=ratings)
plt.xticks(rotation=90)
plt.title('Restoran Puanları')
plt.xlabel('Restoranlar')
plt.ylabel('Puanlar')
plt.show()

Bu grafik, restoranların puanlarını görsel olarak analiz etmenizi sağlar ve hangi restoranların daha yüksek bir değerlendirme aldığını hızlı bir şekilde görebilirsiniz.

Sonuç ve İleri Adımlar

Bu yazıda, Zomato API’sini kullanarak Python ile restoran verilerine nasıl erişebileceğinizi ve bu verileri nasıl analiz edebileceğinizi öğrendiniz. API’den aldığınız verileri kullanarak restoranların özelliklerini analiz edebilir, kullanıcılarınıza değerli bilgiler sunabilirsiniz. Bunun yanı sıra, elde ettiğiniz verileri görselleştirerek kullanıcı deneyimini zenginleştirebilirsiniz.

Geliştirmek istediğiniz yeni projeler için Zomato API’sinin sunduğu diğer uç noktaları araştırmayı unutmayın. Örneğin, belirli bir restoranın menüsüne erişim, rezervasyon işlemleri veya fiyat aralıkları gibi daha spesifik verilere ulaşabilirsiniz. Yalnızca restoranlar değil, kafe ve bar verileri için de Zomato API’sinin sağladığı potansiyeli kullanmak mümkün.

Python’daki becerilerinizi geliştirmeye devam edin, Zomato API’si ile yeni projeler geliştirerek gerçek dünya verileriyle uygulama geliştirme deneyiminizi artırabilirsiniz. Hatalarla karşılaştığınızda ise Python topluluğundan yardım almayı veya dokümantasyonları gözden geçirmeyi unutmayın. Şunu aklınızda bulundurun: öğrenmek, denemekten geçtiği için yeni teknolojilerle deney yapmaktan korkmayın!

Scroll to Top