تفاصيل العمل

عنوان المشروع:

سحب واستخراج بيانات سوق السيارات المستعملة في مصر من موقع ContactCars (Web Scraping & Data Engineering)

---

نبذة تعريفية عن المشروع:

مشروع احترافي متكامل لجمع واستخراج آلاف إعلانات السيارات المستعملة المعروضة للبيع على منصة **ContactCars** (أكبر وأشهر سوق سيارات رقمي في مصر)، ومعالجتها وتنظيمها في قاعدة بيانات Excel منسقة ونظيفة جاهزة مباشرة للتحليل الإحصائي، ودراسات اتجاهات السوق، وبناء نماذج التسعير التنبؤية.

تم بناء الأداة بلغة بايثون (Python)باستخدام معمارية برمجية هجينة (Hybrid Architecture) تجمع بين التعامل المرن مع المحتوى الديناميكي والسرعة الفائقة مع تخطي القيود التقنية.

---

الميزات التقنية وأبرز التحديات التي تم حلها:

1. معمارية هجينة فائقة السرعة (Hybrid Scraping):

- تشغيل Selenium (Headless Chrome) في الخلفية لمعالجة صفحات البحث الديناميكية ومحاكاة التمرير والتنقل بين الصفحات لاستخراج الروابط بدقة.

2. تخطي الحظر وأنظمة الحماية (Bypass Bot Detection & Anti-Scraping):

- تهيئة خيارات متقدمة في متصفح Chrome وإخفاء أعلام الأتمتة (`--disable-blink-features=AutomationControlled`).

- حقن سكربتات خاصة عبر بروتوكول CDP لإلغاء خاصية `navigator.webdriver` وتزوير ترويسات ولغات المتصفح ليظهر كمتصفح بشري طبيعي.

3. حل مشكلة تعليق الصفحات وبطء التحميل (Infinite Loading & Timeouts):

- استخدام استراتيجية `eager` لتحميل الصفحات، والتي تسمح بالبدء فور اكتمال الـ DOM دون انتظار الإعلانات الخارجية، الصور، أو سكريبتات التتبع الثقيلة.

- بناء آلية حماية (`safe_navigate`) تنفذ أمر `window.stop()` تلقائياً في حال تجاوز الحد الزمني المحدد دون أن يتوقف البرنامج.

4.نظام استئناف ذكي ونقاط تدقيق (Checkpoint System):

- تسجيل معرّف كل إعلان فور استخراجه في ملف تدقيق مستقل، مما يمنع سحب أي إعلان مكرر ويسمح بإيقاف البرنامج واستئنافه في أي وقت من حيث توقف تماماً.

5. دقة عالية في استخلاص البيانات (Dual-Layer Parsing) :

- استخراج البيانات المنظمة الرسمية مباشرة من أكواد Schema.org JSON-LD الخاصة بالمركبات (`Vehicle`).

- استخدام مكتبة BeautifulSoup لاستخراج الحقول التكميلية كالوصف الكامل وتاريخ النشر النسبي وقراءات العداد المكتوبة بصيغ مختلفة.

---

### 📊 البيانات المستخرجة (18 حقلاً تفصيلياً):

* **المعلومات العامة**: رقم الإعلان (Ad ID)، رابط الإعلان (URL)، تاريخ النشر الفعلي والنسبي.

* **بيانات المركبة**: الماركة (Brand)، الموديل (Model)، سنة الصنع (Year)، الفئة (Trim).

* **التسعير**: السعر المعروض بالأرقام، العملة (EGP).

* **المواصفات الفنية**: شكل الهيكل (Sedan/SUV/إلخ)، نوع ناقل الحركة (أوتوماتيك/مانيوال)، قراءة العداد (كم)، نوع الوقود، السعة اللترية للمحرك (CC)، عدد الأسطوانات، اللون الخارجي، وحالة السيارة.

* **ملاحظات البائع**: الوصف النصي الكامل للإعلان.

---

🛠️ الأدوات والتقنيات المستخدمة:

- **البرمجة والأتمتة**: Python, Selenium WebDriver, BeautifulSoup4, Requests.

- **معالجة البيانات والملفات**: Pandas, OpenPyXL, Regular Expressions (Regex).

- **المخرجات المسلّمة**: ملف إكسل منسق وشامل (`.xlsx`) + كود مصدري منظم وموثق.

ملفات مرفقة

بطاقة العمل

اسم المستقل
عدد الإعجابات
0
تاريخ الإضافة
تاريخ الإنجاز
المهارات