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.6.tar.gz (26.3 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.6-py3-none-any.whl (22.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: yokapi-1.1.6.tar.gz
  • Upload date:
  • Size: 26.3 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.6.tar.gz
Algorithm Hash digest
SHA256 b84a949ef415ee5a290697692954403c7c08ea45504a5176b5caa9f9038cd22d
MD5 cfd7a69faaf774387a45700a602c0983
BLAKE2b-256 4a4196b6a712bff5964e332b950b180dc5e80b018e99ef0c905db8f8b9f66a4f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: yokapi-1.1.6-py3-none-any.whl
  • Upload date:
  • Size: 22.9 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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 3f1b2a6a5e3e890921ba914b0fd746d566fb3e58358047b79a9aacfb3374dc5c
MD5 098fa08c340eb0009a925f0881335b7a
BLAKE2b-256 6192ab2a590f6c185aa71ce904a4ce9d5bb400d26e08a112d4a8d26d0b16057b

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