המטרה
חיפוש דירה בישראל דורש ניטור 5+ פלטפורמות פעמים רבות ביום בזמן שדירות נעלמות תוך דקות. המטרה הייתה אגרגטור אחד בזמן אמת שנותן יתרון של ראשון.
הפתרון
פלטפורמת פרודקשן מקצה לקצה: סקרייפרים ב-Python/Playwright ל-4 מקורות ישראלים בתדר 3–10 דקות, backend ב-Node.js/Express עם Redis+Bull, נרמול טקסט עברי ב-OpenAI gpt-4o-mini, שכפול תמונות ל-S3, MongoDB, frontend Vue 3 + Tailwind מובייל-פירסט, בודק liveness, מנוע התראות, ותשתית AWS מלאה ב-Terraform.
עיקרי הדברים
- 4 מקורות הטרוגניים מאוחדים דרך base_scraper משותף + שכבת נרמול AI
- ~0.002$ למודעה לנרמול עברית מלא ב-AI
- soft-delete + שכפול תמונות ב-S3 הופכים מקורות עוינים לנתונים עמידים
- כל ה-stack ב-AWS מסופק ב-Terraform (EC2, ALB, CloudFront, Route53)
האתגר
פייסבוק מזהה וחוסם בוטים בצורה אגרסיבית, אבל הוא המקור הכי טרי של מודעות אמיתיות.
מנהל חשבונות מבוסס Playwright שמנהל sessions מחוברים, שומר עוגיות, מגביל ל-instance יחיד דרך thread-pool ייעודי, ו-backoff על דפי challenge.
ארבעה מקורות עם ארבעה מבנים שונים — JSON API, GraphQL, HTML, וטקסט חופשי בעברית.
class מופשט base_scraper עם מחזור חיים קבוע fetch→parse→normalize→persist, ו-OpenAI gpt-4o-mini כמנרמל אוניברסלי לטקסט חופשי בעברית (~0.002$ למודעה) כך שהקוד אחרי כן אדיש למקור.
מודעות נעלמות תוך דקות — הסקרייפרים חייבים לרוץ כל כמה דקות בלי לחטוף חסימות IP/מכסה.
APScheduler עם executor לכל מקור (Facebook 10 דק' יחיד, יד2/Homeless/מדלן 5, liveness 30), סקרייפרים resumable, ו-BrightData ליד2. misfire_grace_time מכסה חלונות פריסה.
URLs של תמונות במקור פגי תוקף ומודעות נמחקות לפני שמשתמשים רואים אותן.
הורדת כל התמונות ל-S3 בסריקה ראשונה והגשה דרך CloudFront. יחד עם soft delete (`isActive: false`) ההקשר ההיסטורי נשמר מעבר לחיי המקור.
מה נמסר
- סקרייפרים ב-Python (פייסבוק, יד2, מדלן, Homeless) עם base class משותף
- Backend ב-Node.js/Express עם תור אסינכרוני Redis+Bull
- Frontend ב-Vue 3 + Tailwind מובייל-פירסט + דאשבורד admin
- Terraform IaC ל-AWS (EC2, ALB, CloudFront, S3, Route53, ACM)
- שירות APScheduler עם executors נפרדים ובודק liveness
- מסמך ארכיטקטורה PROJECT.md
תוצאות
4
מקורות משולבים
3–10 min
תדירות רענון
~$0.002
עלות AI למודעה
Terraformed AWS
תשתית
מה זה לימד אותי
- ל-NLP בעברית על תוכן משתמש, gpt-4o-mini בנקודה המתוקה של דיוק/עלות שבה regex נכשל
- soft-delete + שכפול תמונות הופכים data חולף ל-dataset עמיד
- base_scraper משותף הופך הוספת מקור לעוד כמה מאות שורות, לא pipeline חדש
