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.3.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.3-py3-none-any.whl (22.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: yokapi-1.1.3.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.3.tar.gz
Algorithm Hash digest
SHA256 69e44f986bba26b3ab0e26cb270db1249f69f7a74460b160cf08ce7e0abb5d1b
MD5 bfb51d34f9e51846debc09d35acd6b2b
BLAKE2b-256 e67e9381e8e9c5cd7e8a6d010ed69db20de5a7afdd610d21927beece725e9a0b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: yokapi-1.1.3-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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a2662112e940e5d8046721054de4457686a45b911a326371147471ffc7179504
MD5 eb61c3f938e8eb5af5116d410c4f4c65
BLAKE2b-256 d2497a5fd9e1ac5ae9f564c743747da9fb452dfda14eb76b27d1427c9d5c1e6c

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