Skip to main content

Debis web scraping module for notes and student info.

Project description

Debis Module

Dokuz Eylül Üniversitesi'nin DEBİS sitesinden öğrenci ve ders bilgileri çekmek amacıyla hazırlanmış bir modül.

Installation

pip install debis

Demo

  1. user.py dosyasını açın ve debis kullanıcı adı ve şifrenizi bu dosya içinde domain uzantısı kullanmadan belirtin.

örnek user.py kullanımı:

username = 'ridvan.altun'
password = 'benimgüzelsifrem'
  1. demo.py dosyasını açıp 33. satırı kendinize uydurun.

  2. Son olarak demo'yu çalıştırın.

python demo.py

  1. Örnek çıktı:

alt text

Usage

Kütüphaneyi Projeye Eklemek:

from  debis import person

# logic..

Ön Ayarlar:

Kütüphaneyi kullanmaya başlamadan önce yapabileceğimiz ön ayarlar.

Request Hatalarını Kapat

Bu kütüphaneyi ilk defa kullanacak kullanıcılar için bu kısmın kullanılması tavsiye edilmez, oluşan hataları görmek için bu kısmı atlamanız tavsiye edilir.

# request (istek) esnasında oluşan hataları bildir, default: True
Student.show_timer_errors = False

Öğrenci Nesnesi Oluşturmak:

İki farklı şekilde öğrenci nesnesi oluşturmak mümkün:

  • başlayıp kısa sürede biten işlemler için (normal bir şekilde)
  • uzun süren işlemler için

Uzun süren işlemler için ayrı bir yöntem geliştirilmesinin nedeni Debis sitesinin belirli bir süre kadar işlem yapmayınca 'connection timeout' ile otomatik olarak oturumu sonlandırmasıdır ki bu yöntem sadece nadir senaryolarda kullanılıyor, kafanız karışmasın.

Normal Bir Şekilde Öğrenci Nesnesi Oluşturmak

try:

ogrenci1 = person.Student('username', 'password')

### more codes..

except:
    print('Hata.')

Uzun Süren (~10dk) İşlemler İçin Öğrenci Nesnesi Oluşturmak

try:

# timer çalışma esnasında oluşan hataları gösterme, default: True
person.Student.show_request_errors = False

ogrenci1 = person.Student('username', 'password', alive = True)

# connection timeout olmasın diye bir thread baslatiliyor
ogrenci1.timer.start()

### more codes..

except:
    print('Hata.')

finally:
    ogrenci1.timer.stop()

Öğrenci Hakkında Bilgi Edinmek:

print('\n#### OGRENCININ BUGUNE KADAR ALDIGI DONEMLER\n')

# öğrenciye ait dönemlerin adları bir liste içinde yazdırılıyor
print(ogrenci1.all_period_name)

print('\n#### OGRENCININ BUGUNE KADAR ALDIGI DERSLER\n')

# öğrenciye ait derslerin adları matris şeklinde yazdırılıyor
print(ogrenci1.all_lesson_name)

# for each kullanarak daha güzel bir sekilde goruntulemek mumkun
for x in ogrenci1.all_lesson_name:
    print(x)

print('\n#### DERS KODLARI\n')

# öğrenciye ait derslerin kodları matris şeklinde yazdırılıyor
print(ogrenci1.all_lesson_code)

# for each kullanarak daha güzel bir sekilde goruntulemek mumkun
for x in ogrenci1.all_lesson_code:
    print(x)

print('\n#### OGRENCI BILGILERI\n')

# tüm ögrenci bilgilerini topluca yazdırıyoruz
for x in ogrenci1:
    print(x)

# ogrenci hakkındaki bilgilere tek tek erisebiliyoruz
print(ogrenci1.name)
print(ogrenci1.no)
print(ogrenci1.grade)
print(ogrenci1.fakulty)
print(ogrenci1.department)
print(ogrenci1.grading)

Ders Nesnesi Oluşturmak:

Ders oluşturmanın birçok yöntemi vardır.

# dönem adı ve ders adı vererek ders nesnesi oluşturabiliriz
ders1 = ogrenci1.get_lesson('2017-2018-Güz', lesson_name='Türk Dili I')

# ders adı yerine ders kodu belirtebiliriz
ders1 = ogrenci1.get_lesson('2017-2018-Güz', lesson_code='TDL-1001')

# ders adı girerken buyuk kucuk harf uyumu gözetilmez
ders1 = ogrenci1.get_lesson('2018-2019-Güz', lesson_name='GÖRSEL PROGRAMLAMA 2')

# ders adını tam girmek zorunda değiliz
ders1 = ogrenci1.get_lesson('2018-2019-Güz', lesson_name='görsel')

# ders nesnesini oluştururken dönem adı belirtmedik, default olarak son dönem alındı
ders1 = ogrenci1.get_lesson(lesson_name='görsel')

# ders nesnesini sadece öğrenci nesnesinin içinde oluşturduk
ogrenci1.get_lesson(lesson_name='görsel')

Ders Hakkında Bilgi Edinmek:

print('\n#### DERS NESNE LISTESI\n')

# ogrenci nesnesi üstünden ders nesnelerini liste şeklinde yazdırabiliyoruz
print(ogrenci1.lessons)

# ogrenci icindeki ders nesnesinden veri cektik
print(ogrenci1.lessons[0].credit)

# olusturulan nesne ile ogrenciye ait nesnenin bir link oldugunun gösterimi
print(id(ogrenci1.lessons[0]))
print(id(ders1))

print('\n#### DERS BILGILERI\n')

# ders hakkında bilgileri toplu bir sekilde yazdiriyoruz
for x in ders1:
   print(x)

# ders hakkındaki bilgilere tek tek erisebiliyoruz
print(ders1.code)
print(ders1.name)
print(ders1.fakulty)
print(ders1.department)
print(ders1.branch)
print(ders1.credit)
print(ders1.attendance_required)
print(ders1.repeat_count)
print(ders1.attendance_status)
print(ders1.teaching_assistant)
print(ders1.teaching_assistant_email)
print(ders1.status)

print('\n#### DERS NOT BILGISI\n')

# ilgili dersin notlarına topluca erisiyoruz
print(ders1.notes)

# vize notuna ulasıyoruz
print(ders1.notes['vize_not'])

Contributing

If you find any problem while using this library create an issue. 😋

License

This project is licensed under the MIT License.

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

debis-0.0.1.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

debis-0.0.1-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file debis-0.0.1.tar.gz.

File metadata

  • Download URL: debis-0.0.1.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.42.0 CPython/2.7.16

File hashes

Hashes for debis-0.0.1.tar.gz
Algorithm Hash digest
SHA256 bd8af7851a9c908652859a152592a5db6fd6891140520c7c5c4b027157f7bc3b
MD5 531b13c24905b65eb0781c9be13ce90e
BLAKE2b-256 335269c7fcdf79ec5f02f9c6d14db85c163e321e1ae35698eb06fe302fd9cd98

See more details on using hashes here.

File details

Details for the file debis-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: debis-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.42.0 CPython/2.7.16

File hashes

Hashes for debis-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 993f2e0d41eeae8397968eba902fdef097cf30f346571f648df5c609522d2172
MD5 5375d10ccf311b92fb105462bef163b2
BLAKE2b-256 27806a45a873675986b5b73d54294e138f82dbe9b464f11c03597eab23783c68

See more details on using hashes here.

Supported by

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