מערכת אוטומטית לאיסוף והצגה של נתוני משרות Data Scientist פתוחות בישראל
מערכת זו אוספת באופן אוטומטי נתוני משרות Data Scientist מישראל ממקורות שונים ומציגה אותם בדשבורד אינטראקטיבי. המערכת מתעדכנת אוטומטית כל 12-24 שעות ומספקת תובנות על שוק העבודה בתחום מדע הנתונים.
- איסוף אוטומטי: איסוף נתונים מ-LinkedIn ואתרי חברות טכנולוגיה
- דשבורד אינטראקטיבי: הצגה ויזואלית של הנתונים עם פילטרים מתקדמים
- עדכון אוטומטי: עדכון הנתונים כל 12-24 שעות
- API מלא: נקודות קצה לAPI לגישה לנתונים
- הורדת נתונים: אפשרות להורדת הנתונים בפורמט CSV
- Python 3.8+
- Selenium - לאיסוף נתונים מ-LinkedIn
- BeautifulSoup - לפרסור HTML
- Streamlit - לדשבורד אינטראקטיבי
- Flask - לשרת ה-API
- Plotly - לויזואליזציה
- Pandas - לעיבוד נתונים
- Schedule - לתזמון אוטומטי
- Python 3.8 או גרסה חדשה יותר
- Chrome Browser (לצורך Selenium)
- Git
- שכפול הפרויקט:
git clone <repository-url>
cd data-scientist-jobs-dashboard- יצירת סביבה וירטואלית:
python -m venv venv
source venv/bin/activate # על macOS/Linux
# או
venv\Scripts\activate # על Windows- התקנת תלויות:
pip install -r requirements.txt- התקנת ChromeDriver (אוטומטי דרך webdriver-manager)
python job_scraper.pystreamlit run dashboard.pypython app.pypython scheduler.pyהמערכת אוספת נתונים מהמקורות הבאים:
- LinkedIn - חיפוש משרות Data Scientist בישראל
- Wix - דף הקריירה של Wix
- Fiverr - דף הקריירה של Fiverr
- Monday.com - דף הקריירה של Monday.com
- חברות טכנולוגיה נוספות - בהרחבה עתידית
ניתן לשנות את ההגדרות הבאות ב-job_scraper.py:
- מספר עמודים לסריקה ב-LinkedIn
- מרווחי זמן בין בקשות
- User-Agent
- מקורות נוספים
ניתן לשנות את זמני העדכון ב-scheduler.py:
# עדכון כל 12 שעות
schedule.every().day.at("06:00").do(run_scraper_subprocess)
schedule.every().day.at("18:00").do(run_scraper_subprocess)הנתונים נשמרים ב-CSV עם העמודות הבאות:
title- כותרת המשרהcompany- שם החברהlocation- מיקום המשרהurl- קישור למשרהposted_date- תאריך פרסוםsource- מקור הנתוניםscraped_date- תאריך איסוף
מחזיר את כל המשרות עם אפשרות לפילטור
פרמטרים:
company- שם החברהlocation- מיקוםsource- מקור
מחזיר סטטיסטיקות על הנתונים
מפעיל את הזחלן באופן ידני
מוריד את הנתונים כקובץ CSV
בדיקת בריאות המערכת
הדשבורד כולל:
- מדדים עיקריים: מספר משרות, חברות ייחודיות, משרות אחרונות
- גרפים אינטראקטיביים: התפלגות לפי חברה, מיקום, מקור
- טבלת משרות: רשימת המשרות האחרונות
- פילטרים: סינון לפי חברה, מיקום, מקור
- הורדת נתונים: אפשרות להורדת הנתונים המסוננים
- איסוף נתונים: הזחלן פועל אוטומטית כל 12-24 שעות
- שמירת נתונים: הנתונים נשמרים ב-CSV
- עיבוד נתונים: ניקוי ועיבוד הנתונים
- הצגה: הדשבורד מציג את הנתונים באופן ויזואלי
- API: גישה לנתונים דרך API
- יצירת
Procfile:
web: gunicorn app:app
- הגדרת משתני סביבה:
heroku config:set PYTHONPATH=/app- פריסה:
git push heroku main- יצירת
Dockerfile:
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["python", "app.py"]- בנייה והפעלה:
docker build -t jobs-dashboard .
docker run -p 5000:5000 jobs-dashboardהמערכת מייצרת לוגים ב-scraper.log עם המידע הבא:
- זמני הפעלת הזחלן
- מספר משרות שנמצאו
- שגיאות וחריגים
- סטטוס הפעולות
- שימוש ב-User-Agent מתאים
- מרווחי זמן בין בקשות
- טיפול בשגיאות
- לוגים לניטור
לשאלות ותמיכה:
- דולב רביד - מפתח המערכת
- Email: [Dolev@Ravid.email]
פרויקט זה מוגן תחת רישיון MIT.
- הוספת מקורות נתונים נוספים
- ניתוח טקסט מתקדם של תיאורי משרות
- התראות על משרות חדשות
- אינטגרציה עם LinkedIn API
- אנליטיקה מתקדמת של מגמות שוק
הערה: המערכת מיועדת לשימוש חינוכי ומחקרי בלבד. יש לכבד את תנאי השימוש של האתרים המסוקרים.