Skip to main content

Unofficial API for YokAtlas

Project description

▪ YokAPI

  • YokAtlas için resmi olmayan API
  • Unoffical API for YokAtlas

Made with Python

Repo Size Profile Views GitHub license GitHub last commit PyPI Version

İletişim - Contact Me

📦 Kurulum

pip install YokAPI

📄 Örnek Kullanımlar

from YokAPI import Lisans, Onlisans
import asyncio

async def main():
    # Bölüm arama ve ÖSYM program kodu bulma için aşağıdaki CSV bölümüne bakınız.
    async with Lisans(program_id=108210665, year=2024) as lisans:

        r = await lisans.kontenjan() # -> Kontenjan
        """ ---> Kontenjan(
                osym_kod=108210665,
                year=2024,
                kont_gte=85,
                genel_kont=85,
                yer_oran=100.0,
                kesn_kayt=88,
                kayt_yptrmyn=0,
                tubitak=None,
                engelli=None,
                okl_bir_kont=3,
                okl_bir_yer=3,
                t_kont=88,
                t_yer=88,
                ek_yer=0
            )
        """

        print(r.osym_kod) # -> 108210665
        print(r.year) # -> 2024
        print(r.genel_kont) # -> 85

        r_iller = await lisans.iller() # -> Iller
        """ ---> Iller(
                osym_kod=108210665,
                year=2024,
                sehirler=[Il(
                    isim="Toplam",
                    sayi=88,
                    oran=100.0
                ),
                Il(
                    isim="Samsun",
                    sayi=16,
                    orn=18.2
                ),
                ]
            )
        """
        print(r_iller.sehirler[1].isim) # -> Samsun
        print(r_iller.sehirler[1].sayi) # -> 16
        print(r_iller.sehirler[1].orn) # -> 18.2
        lise_dict = r_iller.model_dump()  # pydantic.BaseModel methods
        print(lise_dict) # -> {'osym_kod': 108210665, 'year': 2024, 'sehirler': [{'isim': 'Toplam', 'sayi': 88, 'orn': 100.0}, {'isim': 'Samsun', 'sayi': 16, 'orn': 18.2}, ...]

if __name__ == "__main__":
    asyncio.run(main())

With Olmadan Kullanım

from YokAPI import Lisans, Onlisans
import asyncio

async def main():
    # Bölüm arama ve ÖSYM program kodu bulma için aşağıdaki CSV bölümüne bakınız.

    lisans_1 = Lisans(program_id=108210665, year=2024)
    r = await lisans_1.kontenjan() # -> Kontenjan
    print(r.tubitak) # -> None # 0

    await lisans_1.close() # oluşan sessionu kendimiz kapatmalıyız. with bloğu kendi kapatır.


if __name__ == "__main__":
    asyncio.run(main())

Ayrı Session Kullanma

  • Program session parametresi vermezseniz kendi sessionunu oluşturur. Kendi sessionuzu vermek isterseniz aşağıdaki kodu inceleyin.
from YokAPI import Lisans, Onlisans
import asyncio
import aiohttp
# import certifi
# import ssl

async def main():
    # ssl_context = ssl.create_default_context(cafile=certifi.where())
    session_ = aiohttp.ClientSession(
        connector=aiohttp.TCPConnector(ssl=False),  # İsterseniz ssl_context kullanarak doğrulamayı açabilirsiniz.
        headers={
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"
        }        
    )
    onlisans_1 = Onlisans(program_id=108250346, year=2024, session=session_)
    r = await onlisans_1.genel_blg() # -> GenelBilgilerOnlisans
    print(r.bos_kontenjan) # -> None # 0
    await session_.close()

if __name__ == "__main__":
    asyncio.run(main())

🔎 Bölüm OSYM Kodu CSV’si (data/universities_departments.csv)

YokAPI kullanıcılarının bölümlerin ÖSYM program kodunu (osym_kod / program_code) hızlıca bulup veri çekebilmesi için, ÖSYM’nin yayımladığı kaynaklardan derlenmiş toplu ve temizlenmiş bir CSV dosyası eklenmiştir: data/universities_departments.csv.

  • CSV sütunları:
    • program_code (ÖSYM kodu)
    • department_name (Bölüm adı)
    • university_name (Üniversite adı)
    • faculty_name (Fakülte adı)
    • is_undergraduate (Lisans=True, Önlisans=False)
    • years (ör. 2022,2023,2024)
    • tags (İngilizce, KKTC, vb.)
    • score_type (ör. SAY/SÖZ/EA/TYT)
    • scholarship_type (ör. Ücretsiz/Burslu/%50 İndirimli)

Kısa bir örnek satırlar:

program_code department_name university_name faculty_name is_undergraduate years tags score_type scholarship_type
103390230 Abaza Dili ve Edebiyatı DÜZCE ÜNİVERSİTESİ Fen-Edebiyat Fakültesi True 2024 SÖZ Ücretsiz
108690161 Acil Durum ve Afet Yönetimi PAMUKKALE ÜNİVERSİTESİ Serinhisar Meslek Yüksekokulu False 2022,2023,2024 TYT Ücretsiz

Notlar ve öneriler:

  • Şu an YÖK Atlas’ta mevcut yıllar: 2022, 2023, 2024. Bir bölüm bazı yıllarda bulunmayabilir; istek atmadan önce CSV’deki years sütununu kontrol edip uygun yılı seçin.
  • Büyük boyutlu JSON’u repo’ya eklemedim; isterseniz data/data_csv_to_json.py ile CSV’yi üniversiteye göre gruplanmış JSON’a dönüştürüp kullanabilirsiniz.
  • YokAPI scraper ile üretilmiş daha detaylı ve temizlenmiş bir veri seti için: https://github.com/izcir/turkish-university-admissions-dataset

Hızlı kullanım örnekleri

CSV’den osym_kod bulup YokAPI ile veri çekme (Lisans örneği):

import pandas as pd
from YokAPI import Lisans
import asyncio

async def run():
    df = pd.read_csv("data/universities_departments.csv")

    row = df[(df["university_name"] == "ONDOKUZ MAYIS ÜNİVERSİTESİ") &
             (df["department_name"] == "Bilgisayar Mühendisliği") &
             (df["is_undergraduate"] == True)].iloc[0]

    program_id = int(row["program_code"]) # 108210665
    years = str(row.get("years")).split(",") # -> ['2022', '2023', '2024']
    year = years[-1] # -> 2024    

    async with Lisans(program_id=program_id, year=year) as lisans:
        genel = await lisans.genel_blg()
        print(genel.toplam_kontenjan, genel.yer_012_son_sira)

asyncio.run(run())

Önlisans bölümleri için benzer şekilde is_undergraduate == False filtreleyip Onlisans sınıfını kullanın.


📌 Lisans Fonksiyonlar ve Modeller

🔹 Temel Bilgiler

📊 YKS Verileri

🏫 Lise Bilgileri

🎓 Üniversite Tercih Verileri

🔄 Öğrenci Hareketleri

🏛 Akademik Bilgiler

🌍 Coğrafi Bilgiler

📌 Önlisans Fonksiyonlar ve Modeller

🔹 Temel Bilgiler

📊 YKS Verileri

🏫 Lise Bilgileri

🎓 Üniversite Tercih Verileri

🔄 Öğrenci Hareketleri

🏛 Akademik Bilgiler

🌍 Coğrafi Bilgiler

📌 Modeller

  • Bu bölümde, veri modelleri ve içerikleri açıklanmaktadır.

GenelBilgiler

Alan Tür Bilgi
osym_kod int ÖSYM program kodu
year int Yıl
bolum_ismi str Bölüm adı
program_kod int Program kodu
uni_tur str Üniversite türü
uni str Üniversite adı
fakulte str Fakülte adı
puan_tur str Puan türü
burs_tur str Burs durumu
genel_kontenjan int Genel kontenjan
ob_kontenjan int OBP kontenjanı
toplam_kontenjan int Toplam kontenjan
genel_yerlesen int Genel yerleşen
ob_yerlesen int OBP yerleşen
toplam_yerlesen int Toplam yerleşen
bos_kontenjan int Boş kontenjan
ilk_yer_oran float İlk yerleşme oranı
kayit_yaptirmayan int Kayıt yaptırmayan
ek_yerlesen int Ek yerleşen
yer_012_son_puan float 0.12 katsayı puanı
yer_018_son_puan float 0.18 katsayı puanı
yer_012_son_sira int 0.12 katsayı sıra
yer_018_son_sira int 0.18 katsayı sıra
tavan_puan float En yüksek puan
tavan_basari_sira int En iyi sıra
obp_kirilan int OBP kırılan
ort_obp float Ortalama OBP
ort_diploma float Ortalama diploma

GenelBilgilerOnlisans

Alan Tür Bilgi
osym_kod int ÖSYM program kodu
year int Yıl
bolum_ismi str Bölüm adı
program_kod int Program kodu
uni_tur str Üniversite türü
uni str Üniversite adı
fakulte str Fakülte adı
puan_tur str Puan türü
burs_tur str Burs durumu
genel_kontenjan int Genel kontenjan
ob_kontenjan int OBP kontenjanı
toplam_kontenjan int Toplam kontenjan
genel_yerlesen int Genel yerleşen
ob_yerlesen int OBP yerleşen
toplam_yerlesen int Toplam yerleşen
bos_kontenjan int Boş kontenjan
ilk_yer_oran float İlk yerleşme oranı
kayit_yaptirmayan int Kayıt yaptırmayan
ek_yerlesen int Ek yerleşen
yer_012_son_puan float 0.12 katsayı puanı
yer_018_son_puan float 0.18 katsayı puanı
yer_012_son_sira int 0.12 katsayı sıra
yer_018_son_sira int 0.18 katsayı sıra
tavan_2024_puan float En yüksek puan (2024)
tavan_2024_sira int En iyi sıra (2024)
ort_obp_2024 float Ortalama OBP (2024)
ort_dn_2024 float Ortalama diploma notu (2024)

Kontenjan

Alan Tür Bilgi
osym_kod int ÖSYM program kodu
year int Yıl
kont_gte int Kontenjan Genel, Tübitak, Engelli toplam
genel_kont int Genel kontenjan
yer_oran float Yerleşme oranı
kesn_kayt int Kesin kayıt yaptıran
kayt_yptrmyn int Kayıt yaptırmayan
tubitak int TÜBİTAK kontenjanı
engelli int Engelli kontenjanı
okl_bir_kont int Okul birincisi kontenjanı
okl_bir_yer int Okul birincisi yerleşen
t_kont int Toplam kontenjan
t_yer int Toplam yerleşen
ek_yer int Ek yerleşen

...existing code...

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yokapi-1.1.4.tar.gz (26.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

yokapi-1.1.4-py3-none-any.whl (22.7 kB view details)

Uploaded Python 3

File details

Details for the file yokapi-1.1.4.tar.gz.

File metadata

  • Download URL: yokapi-1.1.4.tar.gz
  • Upload date:
  • Size: 26.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for yokapi-1.1.4.tar.gz
Algorithm Hash digest
SHA256 dbb327843a367b7bde8aceb42bf26bed8bef237d0977809cfe91fe40bd08460d
MD5 9e5524c0134feb288c917172d3a817ba
BLAKE2b-256 89e9f3a16c1dc3776be8155cd430f7ebd5dc755741f21943f8fb1731aec9d68f

See more details on using hashes here.

File details

Details for the file yokapi-1.1.4-py3-none-any.whl.

File metadata

  • Download URL: yokapi-1.1.4-py3-none-any.whl
  • Upload date:
  • Size: 22.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for yokapi-1.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 0ddbea0cbad97da57a3d3eb6ccabb80054a41034a6e0e4da6d13abfd46db0e83
MD5 ca5696d8b5f4f208bff758b220d38593
BLAKE2b-256 1cad324565639878373ea035df36a1762cb704e7cbdbd444c5e8b515a0eee7f6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page