Skip to content

DolevRavid/Job-Scrapper

Repository files navigation

Data Scientist Jobs Dashboard - Israel

מערכת אוטומטית לאיסוף והצגה של נתוני משרות 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 - לתזמון אוטומטי

📦 התקנה

דרישות מקדימות

  1. Python 3.8 או גרסה חדשה יותר
  2. Chrome Browser (לצורך Selenium)
  3. Git

שלבי התקנה

  1. שכפול הפרויקט:
git clone <repository-url>
cd data-scientist-jobs-dashboard
  1. יצירת סביבה וירטואלית:
python -m venv venv
source venv/bin/activate  # על macOS/Linux
# או
venv\Scripts\activate  # על Windows
  1. התקנת תלויות:
pip install -r requirements.txt
  1. התקנת ChromeDriver (אוטומטי דרך webdriver-manager)

🚀 הפעלה

1. הפעלת הזחלן (Scraper)

python job_scraper.py

2. הפעלת הדשבורד (Streamlit)

streamlit run dashboard.py

3. הפעלת שרת ה-API (Flask)

python app.py

4. הפעלת התזמון האוטומטי

python scheduler.py

📊 מקורות הנתונים

המערכת אוספת נתונים מהמקורות הבאים:

  1. LinkedIn - חיפוש משרות Data Scientist בישראל
  2. Wix - דף הקריירה של Wix
  3. Fiverr - דף הקריירה של Fiverr
  4. Monday.com - דף הקריירה של Monday.com
  5. חברות טכנולוגיה נוספות - בהרחבה עתידית

🔧 תצורה

הגדרות הזחלן

ניתן לשנות את ההגדרות הבאות ב-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 - תאריך איסוף

🌐 API Endpoints

GET /api/jobs

מחזיר את כל המשרות עם אפשרות לפילטור

פרמטרים:

  • company - שם החברה
  • location - מיקום
  • source - מקור

GET /api/stats

מחזיר סטטיסטיקות על הנתונים

POST /api/trigger-scrape

מפעיל את הזחלן באופן ידני

GET /api/download

מוריד את הנתונים כקובץ CSV

GET /health

בדיקת בריאות המערכת

📱 דשבורד

הדשבורד כולל:

  • מדדים עיקריים: מספר משרות, חברות ייחודיות, משרות אחרונות
  • גרפים אינטראקטיביים: התפלגות לפי חברה, מיקום, מקור
  • טבלת משרות: רשימת המשרות האחרונות
  • פילטרים: סינון לפי חברה, מיקום, מקור
  • הורדת נתונים: אפשרות להורדת הנתונים המסוננים

🔄 תהליך העבודה

  1. איסוף נתונים: הזחלן פועל אוטומטית כל 12-24 שעות
  2. שמירת נתונים: הנתונים נשמרים ב-CSV
  3. עיבוד נתונים: ניקוי ועיבוד הנתונים
  4. הצגה: הדשבורד מציג את הנתונים באופן ויזואלי
  5. API: גישה לנתונים דרך API

🚀 פריסה לשרת

Heroku

  1. יצירת Procfile:
web: gunicorn app:app
  1. הגדרת משתני סביבה:
heroku config:set PYTHONPATH=/app
  1. פריסה:
git push heroku main

Docker

  1. יצירת Dockerfile:
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["python", "app.py"]
  1. בנייה והפעלה:
docker build -t jobs-dashboard .
docker run -p 5000:5000 jobs-dashboard

📝 לוגים

המערכת מייצרת לוגים ב-scraper.log עם המידע הבא:

  • זמני הפעלת הזחלן
  • מספר משרות שנמצאו
  • שגיאות וחריגים
  • סטטוס הפעולות

🔒 אבטחה

  • שימוש ב-User-Agent מתאים
  • מרווחי זמן בין בקשות
  • טיפול בשגיאות
  • לוגים לניטור

📞 תמיכה

לשאלות ותמיכה:

📄 רישיון

פרויקט זה מוגן תחת רישיון MIT.

🔮 פיתוחים עתידיים

  • הוספת מקורות נתונים נוספים
  • ניתוח טקסט מתקדם של תיאורי משרות
  • התראות על משרות חדשות
  • אינטגרציה עם LinkedIn API
  • אנליטיקה מתקדמת של מגמות שוק

הערה: המערכת מיועדת לשימוש חינוכי ומחקרי בלבד. יש לכבד את תנאי השימוש של האתרים המסוקרים.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published