Tôi đã viết API lấy thời khóa biểu trường như thế nào?

6250

Helu các bạn! Mình học theo tín chỉ cho nên lịch học không phải tuần nào cùng giống nhau nên hôm nào cũng phải vào trang trường xem lịch (hơi mất chút thời gian và giao diện không trực quan). Một cách nữa là viết lại thời khóa biểu (Mất nhiều thời gian mà có thể sai sót). Các cách này không phù hợp với một thằng lười như mình và mình muốn dùng nhiều lần… Dựng API lấy thời khóa biểu sau đó có thể viết chatbot nhắc lịch hay web/mobile xem lịch tùy ý nữa… Hừm .. Bắt đầu thôi.

Bước 0: Ý tưởng thực hiện

  • Input: tài khoản, mật khẩu sử dụng trên trang trường.
  • Lấy file thời khóa biểu.
  • Phân tích file thời khóa biểu => dữ liệu (JSON).

Bước 1: Phân tích request

Đăng nhập vào trang trường

Password encrypted trước khi gửi lên!!

Bắt request login

Password truyền lên đã mã hóa md5, có một số data khác

Chọn request login > Copy as cURL (bash). Mở Postman Chọn Import > Paste raw text > Ấn nút import Ta được:

Gửi POST thử xem sao !

Vậy là lấy được cookie rồi ^^ Đến với phần lấy file, mình sẽ phân tích request lấy file như request trên và đây là kết quả:

Headers

Phần Headers

Response

Phần response – file excel là đây chứ đâu ^^

Bước 2: Tiến hành code

Mình sử dụng express của NodeJS

Cấu trúc project

File login

Nhiệm vụ là lấy cookie

File get elements

Mục đích là lấy các element trong body. Sử dụng cheerio

Lấy file excel thời khóa biểu

Trích xuất dữ liệu từ file

Phân tích file và tiến hành code.

Sử dụng xlsx.

Kết quả


Sản phẩm

API được sử dụng trong app viết bởi anh trong CLB của mình. Ứng dụng xem lịch học Ảnh

TopDev via Traiit.github

SHARE