API’lere Giriş

pandas ile Kolaylaştırılmış Veri Alımı

Amany Mahfouz

Instructor

Uygulama Programlama Arabirimleri

  • Bir uygulamanın diğer programlarla nasıl iletişim kurduğunu tanımlar
  • Veritabanı ayrıntılarını bilmeden bir uygulamadan veri alma yolu

Bazı alanları işaretli, bazıları boş bir form

pandas ile Kolaylaştırılmış Veri Alımı

Uygulama Programlama Arabirimleri

  • Bir uygulamanın diğer programlarla nasıl iletişim kurduğunu tanımlar
  • Veritabanı ayrıntılarını bilmeden bir uygulamadan veri alma yolu

Bir form ve bir mağaza vitrini. Bir ok, formun mağazaya gönderildiğini gösteriyor.

pandas ile Kolaylaştırılmış Veri Alımı

Uygulama Programlama Arabirimleri

  • Bir uygulamanın diğer programlarla nasıl iletişim kurduğunu tanımlar
  • Veritabanı ayrıntılarını bilmeden bir uygulamadan veri alma yolu

Açık bir paket ve mağaza vitrini. Ok, mağazanın paketi gönderdiğini gösteriyor.

pandas ile Kolaylaştırılmış Veri Alımı

Requests

  • Web sitelerine veri gönderip alma
  • Belirli bir API’ye bağlı değil
  • URL’den veri almak için requests.get()

requests logosu

pandas ile Kolaylaştırılmış Veri Alımı

requests.get()

  • URL’den veri almak için requests.get(url_string)
  • Anahtar argümanlar
    • params: API isteğini özelleştirmek için parametre-sözlüğü
    • headers: sözlük alır; API’ye kullanıcı kimlik doğrulaması verebilir
  • Sonuç: veri ve üstveri içeren bir response nesnesi
    • response.json() yalnızca JSON verisini döndürür
pandas ile Kolaylaştırılmış Veri Alımı

response.json() ve pandas

  • response.json() bir sözlük döndürür
  • read_json() sözlük değil, metin bekler
  • JSON yanıtını pd.DataFrame() ile dataframe’e yükleyin
    • read_json() hata verir!
pandas ile Kolaylaştırılmış Veri Alımı

Yelp İş Arama API’si

Yelp logosu

pandas ile Kolaylaştırılmış Veri Alımı

Yelp İş Arama API’si

Yelp İş Arama API dokümantasyonu. İstek uç noktası ve bazı parametreler gösteriliyor.

pandas ile Kolaylaştırılmış Veri Alımı

Yelp İş Arama API’si

Yelp İş Arama API dokümantasyonu. API uç noktasının URL’si vurgulanmış.

pandas ile Kolaylaştırılmış Veri Alımı

Yelp İş Arama API’si

Yelp İş Arama API dokümantasyonu. İsteğe bağlı term parametresi vurgulanmış.

pandas ile Kolaylaştırılmış Veri Alımı

Yelp İş Arama API’si

Yelp İş Arama API dokümantasyonu. Zorunlu konumsal parametreler vurgulanmış.

pandas ile Kolaylaştırılmış Veri Alımı

Yelp İş Arama API’si

Yelp İş Arama API dokümantasyonu; örnek bir JSON yanıtı gösteriliyor

pandas ile Kolaylaştırılmış Veri Alımı

İstek Gönderme

import requests
import pandas as pd

api_url = "https://api.yelp.com/v3/businesses/search"
# Belgeler doğrultusunda parametre sözlüğünü ayarlayın params = {"term": "bookstore", "location": "San Francisco"}
# Belgeler doğrultusunda API anahtarıyla header sözlüğünü ayarlayın headers = {"Authorization": "Bearer {}".format(api_key)}
# API’yi çağırın response = requests.get(api_url, params=params, headers=headers)
pandas ile Kolaylaştırılmış Veri Alımı

Yanıtları Ayrıştırma

# JSON verisini response nesnesinden ayırın
data = response.json()
print(data)
{'businesses': [{'id': '_rbF2ooLcMRA7Kh8neIr4g', 'alias': 'city-lights-bookstore-san-francisco', 'name': 'City Lights Bookstore', 'image_url': 'https://s3-media1.fl.yelpcdn.com/bphoto/VRydkkpVbA3CeVLBKzs2Vw/o.jpg', 'is_closed': False,
# İşletme verilerini bir dataframe’e yükleyin
bookstores = pd.DataFrame(data["businesses"])
print(bookstores.head(2))
                                  alias        ...                                                    url
0   city-lights-bookstore-san-francisco        ...      https://www.yelp.com/biz/city-lights-bookstore...
1  alexander-book-company-san-francisco        ...      https://www.yelp.com/biz/alexander-book-compan...

[2 rows x 16 columns]
pandas ile Kolaylaştırılmış Veri Alımı

Hadi pratik yapalım!

pandas ile Kolaylaştırılmış Veri Alımı

Preparing Video For Download...