https://github.com/itu-helper/data-updater
Periodically scrapes data related to ITU to be used by anyone. This data powers the ITU Helper web sites.
https://github.com/itu-helper/data-updater
data istanbul-technical-university scraper selenium-python
Last synced: 5 months ago
JSON representation
Periodically scrapes data related to ITU to be used by anyone. This data powers the ITU Helper web sites.
- Host: GitHub
- URL: https://github.com/itu-helper/data-updater
- Owner: itu-helper
- License: mit
- Created: 2022-03-12T10:21:56.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-10-15T07:01:31.000Z (8 months ago)
- Last Synced: 2025-10-15T20:34:13.008Z (8 months ago)
- Topics: data, istanbul-technical-university, scraper, selenium-python
- Language: Python
- Homepage:
- Size: 274 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/itu-helper/data-updater/actions/workflows/refresh_lessons.yml)
[](https://github.com/itu-helper/data-updater/actions/workflows/refresh_course_plans.yml)
[](https://github.com/itu-helper/data-updater/actions/workflows/refresh_courses.yml)
[](https://github.com/itu-helper/data-updater/actions/workflows/refresh_misc.yml)



# **ITU Helper**
_İTÜ'lüler için İTÜ'lülerden_
_ITU Helper_ İstanbul Teknik Üniversitesi öğrencilerine yardım etmek amacıyla ön şart görselleştirme, ders planı oluşturma ve resmi İTÜ sitelerini birleştirme gibi hizmetler sağlayan bir açık kaynaklı websitesidir.
_ITU Helper_'a [_bu adresten_](https://itu-helper.github.io/home/) ulaşabilirsiniz.
# **itu-helper/data-updater**
## **Ne İşe Yarar?**
_Github Actions_ kullanarak **Veri Yenileme Aralıkları** kısmında belirtilen aralıklarda, İTÜ'nün çeşitli sitelerinden ders planlarını ve programlarını okur ve [itu-helper/data](https://github.com/itu-helper/data) _repo_'suna _commit_ eder. Daha sonra, [itu-helper/sdk](https://github.com/itu-helper/sdk) _repo_'suyla veya manuel olarak bu datalara erişilebilirsiniz.
## **Veri Yenileme Aralıkları**
- **(00:04 - 02:49) 5 dk'de bir**: _Lesson_'lar güncellenir.
- **(02:55)**: Bina ve program kodları güncellenir.
- **(03:00)**:
- **Pazartesileri**: _Course_'lar güncellenir.
- **Salıları**: Ders Planları güncellenir.
- **(05:04 - 23:49) 5 dk'de bir**: _Lesson_'lar güncellenir.
> [!NOTE]
> _Lesson_'ların daha sık güncellenmesinin nedeni kontenjan verilerinin güncel tutulmasının gerekmesidir. _Course_'ların ve Ders Planlarının güncellendiği sırada _Lesson_'ların güncellenememsi _Github Actions_'da kullandığımız _Git Auto Commit_'in repo'da değişiklik olması durumda commit atamamasındandır.
## **Verilerin İsimlendirilmesi**
- **Dersler**
- _MAT 281E_ → Course
- _CRN: 22964, MAT 281E_ → Lesson
- **Ders Planları**
- _Bilgisayar ve Bilişim Fakültesi_ → Faculty
- _Yapay Zeka ve Veri Mühedisliği_ → Program
- _2021-2022 / Güz Dönemi Öncesi_ → Iteration
## **Nasıl Kullanılır?**
Veriler otomatik olarak [Veri Yenileme Aralıkları](#veri-yenileme-aralıkları) bölümünde belirtilen saatlerde güncellenir. Manuel olarak çalıştırmak isterseniz, aşağıdaki kodu çalıştırın. `{SCRAP_TARGET}` yazan yere de, _scrap_'lenecek olan veriyi girin (`lesson`, `course`, `course_plan`, `misc`).
```console
python src/run.py -scrap_target {SCRAP_TARGET}
```
## **Toplanan Verilerden Nasıl Yararlanılır?**
Verilerden yararlanırken izleyebileceğiniz iki ana yol bulunmakta. İlk olarak, önerdiğimiz yöntem olan [itu-helper/sdk](https://github.com/itu-helper/sdk) _repo_'sunda bulunan SDK'mizden yararlanmanız. Diğer yöntem ise, verileri _HTTP request_ ile okumak. Bu yöntemin dezavantajı, okuduğunuz dosyalardan bağlantıları kendiniz oluşturmanız gerekmesi. Daha detaylı bilgi için, [itu-helper/sdk](https://github.com/itu-helper/sdk)'nin [HTTP request](https://github.com/itu-helper/sdk?tab=readme-ov-file#http-request) bölümüne bakabilirsiniz.
## **Bilinen Problemler**
### **1. Eksik Ders İsimleri**
Dersler (Course) _scrap_'lenirken kullanılan [sayfa](https://www.sis.itu.edu.tr/TR/ogrenci/lisans/ders-bilgileri/ders-bilgileri.php), bazı dersler için isim bulundurmuyor veya yanlış isim bulundurmuyor. Örneğin `YZV 311E` dersi için görünen ders adı `N`, başka sayfalarda `Veri Madenciliği` olarak görünmesine rağmen.