Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HTTrack Website Copier - GitHub Actions

פרויקט זה מאפשר להוריד אתרים באמצעות HTTrack דרך GitHub Actions.

הורדת קורסים מ-Open edX (madrasafree)

download_course.py מוריד קורס שלם לצפייה אופליין: סרטונים, הנושאים הכתובים, התרגילים, והמדיה שמשובצת בהם (תמונות וקבצי אודיו).

התוצאה היא עותק של ממשק הקורס עצמו, לא רשימת קישורים: עמוד לכל יחידה עם הנגן והתוכן משולבים, פס היחידות האופקי, וניווט הבא/הקודם (גם במקשי החיצים), ועמוד תוכן־קורס עם הפרקים. העיצוב לא משוחזר ביד — הוא מורד מהאתר: גליונות ה-CSS של ממשק הקורסים ושל תבנית ה-LMS, הפונטים והלוגו נשמרים מקומית וההפניות בתוכם מומרות לנתיבים מקומיים, כך שהעותק נראה כמו האתר גם בלי אינטרנט.

הסקריפט מדלג על קבצים שכבר הורדו, כך שהרצה חוזרת בונה מחדש רק את העמודים. דרישות: Python 3 בלבד, ו-yt-dlp לסרטונים שקיימים רק ביוטיוב.

הערה: שמות קבצי ה-CSS של התבנית מכילים hash שמתחלף כשהאתר מתעדכן. שם החבילה של ממשק הקורסים נקרא דינמית, אבל קבצי התבנית מוגדרים ב-THEME_CSS — אם ההורדה מדווחת empty response או 404 עליהם, צריך לרענן את הרשימה.

ב-madrasafree הסרטונים עצמם ציבוריים, אבל התוכן הכתוב דורש חשבון מחובר שרשום לקורס. לכן יש שני מצבי הפעלה.

מצב live - עם cookie של הסשן

מ-DevTools בכרום (F12 → Application → Cookies → courses.madrasafree.com) מעתיקים את הערך של sessionid:

python download_course.py course-v1:madrasa+course2+2019_1 --sessionid VALUE --out output/course2

--dry-run מדפיס את מבנה הקורס בלי להוריד. --no-videos / --no-html מגבילים למה שצריך.

מצב bundle - בלי להעביר cookie לסקריפט

מריצים בדפדפן מחובר סניפט שאוסף את עץ הקורס ואת התוכן הכתוב המרונדר לקובץ JSON אחד (window.__blocks מ-/api/courses/v2/blocks/?depth=all, ואז fetch על student_view_url של כל בלוק html/problem), ומזינים אותו לסקריפט. שאר ההורדה - סרטונים ומדיה - נעשית מה-CDN הציבורי בלי אימות:

python download_course.py --bundle bundle.json --out output/course2

מזהי הקורסים

madrasa+course1+2018 (מתחילים), madrasa+course2+2019_1 (ממשיכים), madrasa+arabic_alphabet+2020_1, madrasa+med1+2020A, madrasa+muallem+2026, madrasa+maayan1+2020, madrasa+maayan2+2020, madrasa+games+2022, madrasa+13_videos+may2024.

שימוש

הרצה דרך GitHub Actions

  1. עבור ללשונית Actions בריפוזיטורי שלך
  2. בחר ב-workflow "HTTrack Website Copier"
  3. לחץ על "Run workflow"
  4. הזן את הפרטים:
    • Website URL: הכנס את כתובת האתר (לדוגמה: https://example.com)
    • Project name: שם לפרויקט (אופציונלי, ברירת מחדל: "website")
  5. לחץ על "Run workflow" הירוק

הורדת התוצאות

לאחר שה-workflow מסתיים:

  1. היכנס לדף ה-workflow run
  2. גלול למטה ל-Artifacts
  3. הורד את הקובץ הדחוס עם האתר שהורד

הגדרות HTTrack

ה-workflow משתמש בהגדרות הבאות:

  • -v: מצב verbose (מידע מפורט)
  • -%v: הצג התקדמות
  • -N0: אל תשמור קבצים זמניים
  • -s0: אל תעקוב אחרי קישורים חיצוניים
  • -r6: עומק רקורסיה מקסימלי של 6 רמות
  • -%e0: אל תשתמש ב-cache חיצוני

דרישות

  • ריפוזיטורי GitHub (פרטי או ציבורי)
  • הרשאות GitHub Actions מופעלות

הערות

  • הקבצים שמורדים נשמרים ל-7 ימים (ניתן לשנות ב-retention-days)
  • זמן ההרצה מוגבל לפי מגבלות GitHub Actions (בדרך כלל 6 שעות)
  • שים לב לכבד את תנאי השימוש של האתרים שאתה מוריד

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages