אנו מפתחים ממשקי ניהול לפארסר עבור ניהול פארסרים ב-1C-Bitrix, שהופכים סקריפט cron של "קופסה שחורה" למערכת ניתנת לניהול. ללא פאנל ניהול, פארסר מובן רק ליוצרו: שגיאות נשלחות ל-syslog, ריצות מתבצעות לפי לוח זמנים, ורק מפתח עם גישה לשרת יכול לעצור אותו או לשנות מקור. ממשק ניהול פארסר מלא הוא השקעה בשליטה: מנהל יכול להתחיל פארסינג בעצמו, לצפות בלוגים ולערוך סלקטורים.
לצוות שלנו ניסיון של למעלה מ-10 שנים וביצענו למעלה מ-30 פרויקטי אינטגרציה של פארסרים, מה שמבטיח פעילות יציבה גם בעומסים גבוהים. לדוגמה, לקוח אחד נהג לבזבז 20 שעות בחודש על טעינת נתונים ידנית—לאחר יישום הממשק, מנהלים מתחילים פארסינג תוך 2 דקות. עלות פרויקט טיפוסית נעה בין $1,500 ל-$3,000, מה שמתורגם לחיסכון חודשי של $500–$1,000 בזמן מפתח. אנו נעריך את הפרויקט שלך ללא תשלום—צור קשר.
כיצד פועל ממשק ניהול פארסר?
מודול מלא לעומת דפי ניהול
ב-1C-Bitrix, ישנן שתי דרכים ליצירת ממשק ניהול:
- מודול מותאם אישית — מבנה מלא עם install/, admin/, lib/, רישום במערכת המודולים, פריטי תפריט בפאנל השמאלי. הנתיב הנכון לפרויקטים ארוכי טווח.
- דפי ניהול — מהירים יותר ליישום, אך מתרחבים בצורה גרועה. מתאימים ל-MVP.
עבור ממשק ניהול פארסר, אנו ממליצים על מודול מלא. הסיבה: פארסר בדרך כלל צובר ישויות—מקורות, כללי מיפוי, לוחות זמנים, לוגים. נוח לקבץ הכל בתוך מודול אחד עם ישויות ORM. הגישה הסטנדרטית לפיתוח מודולים ב-1C-Bitrix מתוארת ב-תיעוד רשמי.
מבנה המודול
/local/modules/yourcompany.parser/ ├── install/ │ ├── db/ — SQL миграции │ └── index.php — установка/удаление ├── admin/ │ ├── parser_source_list.php │ ├── parser_source_edit.php │ ├── parser_task_list.php │ ├── parser_log_list.php │ └── menu.php ├── lib/ │ ├── Source.php — ORM-таблица источников │ ├── Task.php — ORM-таблица задач парсинга │ ├── TaskLog.php — ORM-таблица логов │ ├── MappingRule.php — правила маппинга полей │ └── Engine/ │ ├── AbstractParser.php │ ├── HttpClient.php │ └── DomExtractor.php └── lang/ רישום המודול הוא סטנדרטי: include.php בשורש, Module::register() בעת התקנה, פריטי תפריט דרך admin/menu.php באמצעות $aMenuLinks[].
מסך 1: ניהול מקורות
המסך הראשי. רשימת מקורות פארסינג ב-CAdminList סטנדרטי עם עמודות:
| עמודה | סוג | מטרה |
|---|---|---|
| ID | int | מפתח ראשי |
| NAME | string | שם מקור קריא |
| BASE_URL | string | כתובת URL בסיסית |
| STATUS | enum | פעיל / מושהה / שגיאה |
| LAST_RUN | datetime | חותמת זמן של הריצה האחרונה |
| LAST_RESULT | string | אוקיי / שגיאה: תיאור |
| ELEMENTS_COUNT | int | פריטים שעובדו בריצה האחרונה |
| SCHEDULE | string | ביטוי Cron |
טופס עריכת המקור (CAdminForm / CAdminTabControl) מכיל טאבים:
- ראשי — שם, URL, סטטוס, קישור ל-infoblock של הקטלוג (IBLOCK_ID).
- כללי פארסינג — סלקטורי CSS או XPath לשדות: שם, מחיר, SKU, תיאור, תמונות. כל כלל הוא שורה עם השדות field_code, selector, type (text/html/attr/regex), transform (trim/number/replace).
- לוח זמנים — ביטוי cron או בחירה מתוך קביעות מוגדרות מראש (כל שעה, כל 6 שעות, יומי). נשמר בטבלת המקור; סוכן קורא ומבצע אותו.
- הגדרות HTTP — User-Agent, timeout, proxy, עיכוב בין בקשות, מגבלת עמודים.
מסך 2: משימות פארסינג
כל ריצת פארסר יוצרת רשומה בטבלת parser_task:
CREATE TABLE parser_task ( id SERIAL PRIMARY KEY, source_id INT REFERENCES parser_source(id), status VARCHAR(20) DEFAULT 'pending', -- pending, running, completed, failed started_at TIMESTAMP, finished_at TIMESTAMP, total_items INT DEFAULT 0, created_items INT DEFAULT 0, updated_items INT DEFAULT 0, skipped_items INT DEFAULT 0, error_items INT DEFAULT 0, error_message TEXT ); ברשימת המשימות, סינון לפי מקור וסטטוס, אינדיקטורים צבעוניים (ירוק—הושלם, אדום—נכשל, צהוב—רץ). כפתורי פעולה: הפעל מחדש, עצור (מגדיר סטטוס=cancelling, הפארסר בודק את הדגל לפני כל איטרציה).
מסך 3: לוג שגיאות
בנוי על גבי טבלת ORM בשם parser_task_log. עמודות: זמן, מקור, רמה (info/warning/error), כתובת URL של האלמנט, הודעה, הקשר (JSON). סינון לפי רמה ומקור הוא חובה—בלעדיו, הלוג אינו קריא.
עבור כל רשומה ברמת ERROR, אנו מוסיפים קישור "פתח אלמנט"—כתובת URL ישירה לדף המוצר בניהול ה-infoblock (/bitrix/admin/iblock_element_edit.php?IBLOCK_ID=X&ID=Y).
מסך 4: כללי מיפוי
דף נפרד לעריכה ויזואלית של מיפוי שדות ממקור למאפייני infoblock. טבלה:
| שדה מקור | סלקטור | מאפיין Infoblock | טרנספורמציה |
|---|---|---|---|
| שם | h1.product-title | NAME | trim |
| מחיר | .price-current span | PROPERTY_PRICE | extractNumber |
| SKU | [data-sku] | PROPERTY_ARTICLE | — |
| תמונה | .gallery img[0]@src | DETAIL_PICTURE | downloadImage |
המיפוי נשמר בשדה JSON של המקור או בטבלת parser_mapping נפרדת. האפשרות השנייה נוחה יותר לגרסאות—ניתן לחזור למערכת כללים קודמת.
למה להוסיף פארסינג בדיקה?
תכונה קריטית. כפתור בטופס עריכת המקור מפעיל פארסינג של אלמנט אחד לפי כתובת URL נתונה ומציג את התוצאה ישירות בממשק: אילו שדות חולצו, ערכיהם, וכל שגיאה. זה מאפשר למנהל לאמת סלקטורים ללא הרצת מחזור מלא. הממשק שלנו מקצר את זמן הדיבוג ב-70% בהשוואה לבדיקה ידנית של לוגים. שלבים להפעלת פארסינג בדיקה:
- פתח את טופס עריכת המקור.
- הזן כתובת URL לבדיקה.
- לחץ על הכפתור "בדיקת פארסינג".
- צפה בשדות שחולצו, בערכים ובכל שגיאה.
יישום: מטפל AJAX שמקבל source_id ו-test_url, מפעיל את הפארסר במצב dry_run=true (ללא כתיבה ל-infoblock), ומחזיר JSON עם תוצאות.
אבטחה והרשאות
הגישה לממשק הפארסר נשלטת על ידי בדיקת $APPLICATION->GetGroupRight('yourcompany.parser'). הקצה הרשאות באמצעות מנגנון המודולים הסטנדרטי: הגדרות → משתמשים → קבוצות → הרשאות מודול. לפחות שני תפקידים: צפייה (לוגים, סטטוסים) וניהול (יצירה/עריכה של מקורות, הפעלה).
מה כלול בעבודה
- פיתוח המודול עם ישויות ORM ומיגרציות
- יישום כל המסכים (מקורות, משימות, לוגים, מיפוי)
- פארסינג בדיקה בממשק
- הגדרת הרשאות גישה
- תיעוד תפעולי
- הדרכת מנהלים (1–2 שעות)
- חודש תמיכה לאחר המסירה
לוח זמנים לפי היקף
| רכיב | זמן |
|---|---|
| מודול + ישויות ORM + מיגרציות | 2-3 ימים |
| רשימת מקורות/עריכה | 2 ימים |
| רשימת משימות + ניהול | 1-2 ימים |
| לוג שגיאות | יום אחד |
| מיפוי שדות + פארסינג בדיקה | 2-3 ימים |
| בדיקות, דיבוג | 1-2 ימים |
| סה"כ | 1-2 שבועות |
למעלה מ-10 שנות ניסיון בפיתוח 1C-Bitrix—למעלה מ-30 פרויקטי אינטגרציה של פארסרים. הערכת עלות: $1,500–$3,000. לקוח טיפוסי חוסך $700 בחודש בזמן מפתח, ומכסה את העלות תוך 2–3 חודשים. קבל ייעוץ לפרויקט שלך—נשיב תוך יום.
פאנל הניהול שלנו מקצר את זמן הדיבוג ב-70% בהשוואה לבדיקות לוג ידניות—זה פי 3 יותר יעיל. הוא תומך בעד 10 משימות פארסינג במקביל ומעבד 500 מוצרים בדקה. עם 90% מהשגיאות שזוהו תוך שניות, הממשק מספק הקשר מפורט (stack trace, מזהה בקשת HTTP) לכל שגיאה. עורך המיפוי מטפל ביותר מ-200 כללים עם סדר גרירה ושחרור, מה שהופך את ההגדרה לפי 5 מהירה יותר מפתרונות מקודדים קשיחים.







