דביר נעמן

קייס אנונימי 9, סוכן חילוץ נתונים אוטונומי
קייס סטאדי / פיתוח ואוטומציות

אנונימי #9: סוכן חילוץ נתונים אוטונומי לכל אתר ציבורי

⏱ פיתוח כשבועיים 🛠 בנוי על Flask ו-Playwright 📥 יצוא ל-JSON ו-Excel

לקוח שעובד עם נתוני שוק חיים ביקש סוכן שיודע לחלץ מידע מכל אתר באינטרנט: לקבל URL ולסמן אילו שדות לאסוף, ולהחזיר את הנתונים בקובץ מובנה. בנינו לו מערכת שעובדת על Playwright בסטיילת' מותאם, עם backoff טבעי, ועם יצוא ל-JSON או Excel.

קייס אנונימי 9, סוכן חילוץ נתונים אוטונומי

הסיפור: כל אתר, כל שדה, פעולה אחת

Nאתרים נתמכים בו זמנית
שדות פר אתר ניתן להגדרה
1-3שניות בין בקשות, אנושי
מידע ציבורי בלבד

הלקוח עובד בענף שדורש מעקב על נתוני שוק שמופיעים באתרים ציבוריים: מחירים, זמינות, ביקורות, פרטי מוצר. עד שבנינו לו את המערכת, הוא היה משתמש בכלי SaaS אוטונומיים שעובדים טוב על אתר אחד אבל מתפרקים על השני, או דורשים תוכניות יקרות שלא מותאמות לקצב שלו.

בנינו לו סוכן Flask + Playwright עם stealth מובנה: רוטציה של user-agents, mouse movement סימולטיבי, backoff בין 1 ל-3 שניות בין בקשות, וזיהוי של מצב anti-bot כדי להאט אוטומטית. כל אתר מוגדר כקובץ JSON עם סלקטורים פר שדה, ואפשר להוסיף אתר חדש בלי לכתוב קוד.

התוצאה היא ממשק רשת שמציג רשימת אתרים נתמכים, מאפשר ללקוח לבחור איזה שדות לחלץ מכל אחד, מציג progress חי באמצעות SocketIO, ומציע יצוא ל-JSON או Excel. גם היסטוריה של סריקות שמורה למקרה שצריך להחזיר נתון ישן או להשוות בין סבבים.

תהליך העבודה המלא, משבעה שלבים

איך ההזמנה של הלקוח הפכה למערכת חיה. כל שלב יושב על השלב שלפניו, ובכל שלב הלקוח אישר את הפלט לפני שעברנו הלאה.

1

אפיון רשימת אתרים ושדות

עברנו עם הלקוח על האתרים שהוא עובד מולם וחילצנו פר אתר את השדות הקריטיים. למשל: באתר חנות מוצר=שם+מחיר+זמינות, באתר ביקורות פריט=דירוג+מספר ביקורות+תאריך אחרון. הגדרנו את כל השדות כקונפיג JSON.

2

בניית מנוע Playwright עם stealth

מימשנו browser headless עם plugin של stealth שמכבה fingerprinting אוטומציה. הוספנו רוטציה של user-agents, viewport variations, ו-mouse movement סימולטיבי שמבזבז זמן בין clicks (כדי לחקות אדם).

3

מנוע חילוץ מבוסס סלקטורים גמיש

כל שדה באתר מוגדר עם CSS selector או XPath. אם השדה דורש JavaScript (למשל, מספר מתחזק לאחר scroll), אפשר לציין JS expression שמופעל בעמוד. כך מתאימים שדה חדש בלי שינוי בקוד.

4

rate limiting והתמודדות עם anti-bot

1-3 שניות בין בקשות (random במקום fixed כדי לחקות אדם). אם האתר מחזיר 429 או צבע אנטי-בוט שזוהה (CAPTCHA, Cloudflare), המערכת עוברת לקצב איטי יותר ושולחת התראה ללקוח.

5

progress חי דרך WebSocket

SocketIO מעדכן את הלקוח בזמן אמת על מספר פריטים שנסרקו, אחוז ההצלחה, וזמן צפוי להשלמה. הלקוח רואה גם logs מהסריקה בזמן שזה רץ, אם משהו נשבר הוא יודע מיד.

6

יצוא ל-JSON ו-Excel

אחרי השלמת סריקה, לחיצה אחת מייצאת את התוצאות. JSON לעבודה תכנותית, Excel לבדיקה ויזואלית או שיתוף עם צוות. בשני הפורמטים, השדות מסודרים לפי הקונפיג של האתר.

7

היסטוריית סריקות מלאה

כל סריקה נשמרת עם timestamp, אתר, שדות שנדרשו, ותוצאות. אפשר לחזור לסריקה ישנה, להוריד את הקובץ שלה, או להשוות בין שני סבבים (למשל לראות אילו מוצרים שינו מחיר השבוע).

מה בוצע לבקשת הלקוח, פיצ'ר אחרי פיצ'ר

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

הוספת אתר חדש בלי קוד

אתר חדש = קובץ JSON עם סלקטורים. אפשר להוסיף אתר תוך 15 דקות, גם בלי ידע פיתוח עמוק.

בחירת שדות לחילוץ

הלקוח רואה רשימה של שדות זמינים לכל אתר, ומסמן בלחיצה אילו לכלול בסריקה הזו.

Playwright עם stealth מותאם

browser headless שמדמה משתמש אנושי: viewport, user-agent, מהירות גלילה, מקלדת. עובר fingerprinting tests סטנדרטיים.

rate limiting אוטומטי

1-3 שניות בין בקשות, האטה אוטומטית כשמזוהה anti-bot, וחזרה למהירות רגילה כשהאתר נרגע.

progress חי דרך WebSocket

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

יצוא JSON או Excel

אחרי סריקה, לחיצה מייצאת את התוצאות. JSON לעבודה אוטומטית, Excel לבדיקה.

היסטוריית סריקות לחיפוש

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

התראה כשנמצא anti-bot

אם המערכת מזהה CAPTCHA, Cloudflare או 429, היא שולחת התראה ללקוח. הוא יכול להחליט אם להמשיך באטיות או לעצור.

תור עיבוד אסינכרוני

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

שמירת cookies מאתרי login

אם אתר דורש login (לא בכל המקרים), אפשר להזין credentials פעם אחת, והמערכת תשמור את הסשן.

מבנה תפלט אחיד

כל אתר מוציא נתונים באותו פורמט אחיד (item array עם key-value), כך שהצינור הבא של הלקוח לא צריך ידיעה איזה אתר הגיע.

תיעוד פר אתר

כל אתר חדש שמתווסף מקבל קובץ MD שמסביר אילו שדות זמינים, מה הסלקטורים, ומה ההגבלות הידועות.

איך נראית המערכת

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

אשף סוכן חילוץ נתונים בארבעה שלבים

אשף הסריקה

אשף בן ארבעה שלבים: סריקה, מיפוי, משיכת תוכן, ייצוא. הלקוח מזין URL ובוחר אילו שדות לחלץ. המערכת מטפלת בשאר.

מסך התקדמות סריקה בסוכן החילוץ

יומן פעולות בזמן אמת

במהלך הסריקה הלקוח רואה progress + logs בזמן אמת דרך WebSocket. אם המערכת זוהתה כבוט, היא מאיטה ומסמנת בלוג.

שלוש יכולות שעושות את ההבדל

🎯

אוטונומי לפי קונפיג

אתר חדש = קובץ JSON. בלי לכתוב קוד, בלי תלות בספק. מתאים לעסקים עם מקורות נתונים שמשתנים תכופות.

👤

התנהגות אנושית

rate limiting אנושי, mouse movement, user-agents מתחלפים. עובר רוב מנגנוני הזיהוי הסטנדרטיים, והאטה אוטומטית כשנמצא anti-bot.

📊

יצוא מובנה ושימוש חוזר

JSON ו-Excel באותה לחיצה. היסטוריה לכל סריקה, השוואה בין סבבים, ושמירה לטווח ארוך לכל מי שצריך.

בנייה בשיתוף Claude Code

לאורך כל הפרויקט עבדנו ב-Claude Code עם סקילים ייעודיים שמסדרים את שיטת העבודה: brainstorming לאפיון, writing-plans לתוכנית, TDD לפיתוח, debugging שיטתי לאיתור בעיות, ו-verification לפני סיום משימות.

בנייה בשיתוף Claude Code, סקילים פעילים בפרויקט anonymous-9

סקילים פעילים בפרויקט

שישה סקילים מסדרים את התהליך: brainstorming להפרדת מנוע מקונפיגורציה, writing-plans ל-schema אחיד לאתרים, TDD על אתרי דגימה, debugging שיטתי לסלקטורים בעת שינויי DOM, audit חוקיות מקיף, ו-verification של אתיקה לפני הוספת אתר חדש.

מבנה הפרויקט, חלוקת אחריות נקייה anonymous-9

מבנה הפרויקט, חלוקת אחריות נקייה

מנוע אחד על Playwright עם stealth, סלקטורים גנריים ותומך פאגינציה. תיקיית site-configs עם קבצי JSON לכל אתר ו-MD מתועד עם ההיגיון. אתר חדש = קובץ JSON אחד ובדיקה משפטית, בלי לגעת במנוע. תחזוקה פשוטה.

סיכום הקייס סטאדי

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

היום הוא מריץ עשרות סריקות בשבוע על מקורות מגוונים, מקבל הכול בפורמט אחיד, ולא מבזבז זמן על כלים ש"כמעט עובדים". כשמקור משתנה, הוא מעדכן קובץ JSON בלבד.

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

שאלות ותשובות

האם זה חוקי?

אנחנו אוספים רק מידע ציבורי שהאתר מציג בלי דרישת login. אין איסור חוקי על סריקה של מידע ציבורי, אבל מומלץ לבדוק את ה-Terms של כל אתר ואת robots.txt לפני סריקה רחבת היקף.

מה קורה אם האתר חוסם?

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

האם זה תופס JavaScript-rendered sites?

כן, Playwright מריץ דפדפן אמיתי שמרצה JS. שונה מכלי scraping פשוטים שעובדים על HTML גולמי בלבד.

מה לגבי CAPTCHAs?

המערכת מזהה CAPTCHA ומאטה. אם נדרש פתרון, אנחנו ממליצים על שירות 2captcha או על מעורבות אנושית. לא מנסים לעבור CAPTCHAs בכוח.

כמה זמן לוקח להוסיף אתר חדש?

15-60 דקות בממוצע. תלוי בכמה שדות צריך, ובאם האתר משתמש ב-JS לטעינה. לרוב מספיקה הגדרת קובץ JSON אחד.

איך נשמרים cookies של login?

מוצפנים ב-state file מקומי, לא בענן. מתאים לאתרים שדורשים login רגיל. דרך פעם אחת, אחר כך הסשן נשמר.

האם אפשר לשלב את הסוכן בצינור גדול יותר?

כן, יש לו REST API שמחזיר את התוצאות. אפשר להפעיל סריקה תכנותית ולקבל את הדאטה לתהליך הבא.

מה ההבדל בינו לבין Octoparse או similar?

הם SaaS עם תוכניות חודשיות וגבולות פר אתר. אצלנו אתה מחזיק בקוד, יכול לרוץ על שרת שלך, ואין מגבלת אתרים. אבל אתה אחראי לתחזוקה.

האם תומך בסקריפטים מורכבים יותר מסלקטור?

כן. אם השדה דורש לוגיקה (למשל לחישוב שינוי מחיר), אפשר להוסיף JS expression בקובץ הקונפיג. הסוכן מריץ אותו ושומר את התוצאה.

רוצים סוכן חילוץ נתונים מאתרים ציבוריים?

השאירו פרטים ונחזור אליכם לפגישת אפיון. נסביר איך לבנות מערכת חוקית ויציבה לחילוץ מידע ציבורי, עם backoff נכון והתאמה לאתרים מגוונים.

דביר נעמן

על הכותב

דביר נעמן – מומחה שיווק דיגיטלי, SEO ואוטומציות

מלווה עסקים בצמיחה דיגיטלית: קידום אורגני, קידום במנועי AI, אימייל מרקטינג, אוטומציות ופיתוח תוכנה. תוצאות מדידות ושקיפות מלאה.