تحليل البيانات هو عملية تحويل البيانات من تنسيق ما (مثل JSON أو XML) إلى تنسيق آخر (مثل JavaScript Object Notation). وقد يكون ذلك مفيدًا عندما ترغب في تخزين بيانات منظمة في تطبيقك ولا تعرف شكلها أو كيف ستبدو في وقت التشغيل. يتيح لك التحليل استخدام لغة برمجة أكثر إلمامًا بالنسبة لك، مثل JavaScript، بدلاً من استخدام لغة مختلفة تمامًا للقيام بنفس المهمة.
يُستخدم تحليل البيانات أيضًا لأغراض أخرى: على سبيل المثال، إذا كانت واجهة برمجة التطبيقات (API) تُرجع بيانات بتنسيق JSON. ومع ذلك، إذا كان برنامجك لا يفهم سوى البيانات بتنسيق XML، فلن يكون أمامك خيار سوى تحليل بيانات JSON وتحويلها إلى صيغة يمكن لبرنامجك فهمها.
الطريقة الأكثر شيوعًا لتحقيق ذلك هي من خلال مكتبة تُسمى jQuery، والتي تقوم بتحليل مستندات HTML إلى عناصر DOM ثم تستخدم تلك العناصر في قاعدة كودها. وهذا يسهل على المطورين غير الملمين بقواعد لغة HTML/CSS/JavaScript التعامل مع واجهات برمجة التطبيقات (APIs) التي تُرجع محتوى HTML.
هل تشعر بالارتباك؟ إذن دعنا نوضح الأمر لك.
كيف يتم تحليل البيانات؟
يعمل تحليل البيانات من خلال تحويل محتوى HTML الخام إلى نموذج كائنات جاهز للاستعلام. وتُسمى هذه العملية «التعيين» أو «الفهرسة». ويحتوي الناتج على جميع الحقول المُعيَّنة مع القيم المقابلة لها المستخرجة من المستند أو الصفحة أو البريد الإلكتروني المصدر، إلخ.
لماذا نستخدم تحليل البيانات؟
ومن بين الاستخدامات الأكثر شيوعًا ما يلي: استخراج البيانات من مواقع الويب ورسائل البريد الإلكتروني والوثائق الأخرى. ويتم ذلك عن طريق تحليل محتوى HTML وتحويله إلى نموذج كائنات يمكن الاستعلام عنه لاسترداد المعلومات المطلوبة. وسيتضمن الناتج جميع الحقول مع قيمها المستخرجة من الوثيقة أو الصفحة أو رسالة البريد الإلكتروني المصدر. كما يوفر طرقًا للاستعلام عن هذه الكائنات واسترداد المعلومات المطلوبة.
تدعم هذه المكتبات أنواعًا مختلفة من الاستعلامات، بما في ذلك التعبيرات النمطية، واستعلامات XPath، وتقنيات أكثر تقدمًا مثل XQuery، التي تتيح لك كتابة استعلامات مخصصة باستخدام صيغة XML. ومن بين اللغات الأكثر استخدامًا: Java وPHP وPython وC# .NET، وغيرها.
تتوفر اليوم على شبكة الإنترنت عدة أنواع من برامج التحليل النحوي؛ ومع ذلك، فإنها تعمل جميعها بطريقة مشابهة: فهي تحول النص المدخل إلى بنية كائنات تمثل ما تجده داخل ذلك النص.
تمثل الكائنات إما العقد أو السمات داخل تلك العقد (العناصر). على سبيل المثال، إذا كان لديك مستند يحتوي على علامات تضم بعض المحتوى بداخلها، فإن كل علامة تمثل عقدة كائن داخل البنية الناتجة. وهي تمثل كل ما يوجد داخل محتويات ذلك العنصر. وستُعرض العلامة على أنها عقدة سمة تحتوي على معلومات حول العنصر الأصلي الذي تنتمي إليه.
في الأقسام التالية، سنتناول بعض برامج التحليل النحوي الأكثر شيوعًا المتوفرة على شبكة الإنترنت حاليًا.
مكتبات تحليل لغة HTML.
تُستخدم مكتبات تحليل البيانات HTML لتحليل محتوى HTML واستخراج البيانات منه. وتُستخدم هذه المكتبات لاستخراج البيانات من صفحات الويب أو المستندات أو رسائل البريد الإلكتروني أو النصوص المنظمة. ويمكن استخدام هذه المكتبات لأغراض متنوعة، مثل استخراج البيانات من مواقع الويب، وتحليل رسائل البريد الإلكتروني، وما إلى ذلك.
حساء جميل
Beautiful Soup هي مكتبة لغة بايثون مخصصة لتحليل لغة HTML. وقد صُممت لتكون سهلة الاستخدام وسريعة، ولكنها في الوقت نفسه قوية بما يكفي لمعالجة أكثر المستندات تعقيدًا. يمكن لـ Beautiful Soup تحليل لغة HTML من مصادر عديدة، بما في ذلك الملفات وعناوين URL ورسائل البريد الإلكتروني، وحتى من الحافظة.
يتم تحليل علامات وسمات HTML بسرعة ودقة. وهذا يعني أن Beautiful Soup قادر على معالجة أكثر المستندات تعقيدًا.
صُمم «Beautiful Soup» ليكون سهل الاستخدام، حيث يوفر واجهة برمجة تطبيقات (API) بسيطة لمعالجة المستند، ومجموعة كاملة من الفئات للتعامل مع العناصر الموجودة في المستند.
إلى اللقاء
يدعم Cheerio تحليل مستندات JSON (JavaScript Object Notation) وترميز الكائنات الأصلي لـ JavaScript (ECMAScript، ES5). وبالإضافة إلى دعم صيغة ES5، فإنه يدعم أيضًا ميزات أحدث مثل الدوال السهمية في كتل كود ES6. وقد صُممت واجهة برمجة تطبيقات Cheerio بحيث تكون سهلة الاستخدام والتكامل مع المكتبات الأخرى. وهي تتيح الوصول إلى البيانات التي تم تحليلها في شكل خريطة Java أو قائمة ArrayList أو دفق من كائنات JSON.
JSoup
JSoup هي مكتبة مخصصة لتحليل بيانات مستندات HTML وXML. وهي توفر واجهة برمجة تطبيقات (API) تتيح لك تحليل ملفات HTML وXML وJSON وCSS وعناصر DOM. يمكنك استخدام أداة التحليل هذه بعدة طرق:
- استخراج البيانات من المستند (على سبيل المثال، استخراج جميع الروابط من صفحة HTML).
- إنشاء مستندات جديدة (على سبيل المثال، إنشاء ملف XML جديد من الصفر أو تحويل ملف HTML موجود إلى تنسيق XHTML المكافئ له).
- لأغراض التحقق من الصحة (مثل التحقق من صحة النماذج مقارنةً بقيم المدخلات الخاصة بها).
محرك الدمى
Puppeteer هو ملحق للمتصفح يتيح لك فحص وتعديل نموذج DOM لأي موقع ويب. وهو متوفر حاليًا لمتصفحات Chrome وFirefox وOpera.
كيف يمكنني استخدام Puppeteer لتحليل البيانات؟
أسهل طريقة لاستخدامه هي من خلال أيقونة الملحق الموجودة في شريط أدوات المتصفح: بمجرد تثبيته، سترى أيقونة جديدة في شريط أدوات المتصفح:
انقر على الأيقونة، وستظهر لك نافذة تطلب منك اختيار الموقع الإلكتروني الذي تريد فحصه. عند تشغيل البرنامج لأول مرة، سيطلب منك الإذن للوصول إلى جميع المواقع الإلكترونية المفتوحة حاليًا في متصفحك. يمكنك دائمًا تغيير هذا الإعداد لاحقًا بالنقر على زر «خيارات» في أسفل النافذة:
من هناك، استخدم Puppeteer Parser تمامًا مثل أي أداة فحص DOM أخرى. فهو يعمل بنفس الطريقة التي تعمل بها «أدوات المطورين في Chrome» أو «أدوات المطورين في Firefox»، لكنه أكثر فاعلية بكثير من أي من هاتين الأداتين بمفردها.
تطوير محلل لغوي مقابل شراء محلل لغوي.
إن بناء محلل لغوي لا يقتصر على إنشاء المحلل فحسب، بل يتضمن أيضًا فهم كيفية استخدامه. وهذا يعني أنك تحتاج إلى فهم قواعد لغتك وتعلم كيفية كتابة محلل لغوي/مُجزِّئ جيد (وهو ما يتطلب بدوره معرفة كافية بالتعبيرات النمطية).
يعتقد الكثيرون أن شراء محلل لغوي أرخص من بنائه من الصفر. لكن هذا ليس صحيحًا: فإذا اشتريت محللًا لغويًّا، فسيتم تثبيته على جهاز الكمبيوتر الخاص بك مجانًا من خلال حزمة البرامج التي تقوم بتثبيتها في ذلك الوقت. ويمكنك بعد ذلك استخدامه دون الحاجة إلى القلق بشأن تكوين أو تثبيت أي شيء آخر.
قد يبدو هذا ميزة، لكن معظم برامج التحليل النحوي تعاني من قيود تجعلها غير مناسبة لبعض التطبيقات (على سبيل المثال، لا تدعم الهياكل المتداخلة).
كما أنه، على الرغم من وجود العديد من برامج التحليل النحوي المجانية، فإن وظائفها عادةً ما تكون محدودة للغاية. فهي لا تستطيع التعامل مع قواعد نحوية أكثر تعقيدًا من تلك التي تدعمها مكتباتها الأساسية (حتى أن هذه المكتبات غالبًا ما تكون مقيدة).
وأخيرًا، عند كتابة كود يستخدم هذه المكتبة، عليك دائمًا أن تتذكر أن الإصدارات المختلفة قد تتصرف بشكل مختلف — اعتمادًا على من قام بكتابتها. لذا، ما لم يقم أحدهم بكتابة اختبارات لمكتبته وتوثيق يشرح وظيفة كل عنصر — والسبب وراء ذلك — فإن استخدام واجهة برمجة التطبيقات (API) هذه قد يكون أمرًا محبطًا للغاية.
لذا دعونا نلقي نظرة على بعض مزايا إنشاء محلل لغوي:
- يمكنك كتابة محلل خاص بك لقواعد نحوية لا تدعمها أي مكتبة. لست مضطرًا إلى الالتزام بالقيود التي يفرضها محلل موجود مسبقًا، ويمكنك جعله معقدًا أو بسيطًا حسب رغبتك.
- ستتمكن من استخدامه في جميع مشاريعك دون الحاجة إلى القلق بشأن مشكلات قابلية النقل (على سبيل المثال، إذا قرر أحدهم يومًا ما التبديل من الإصدار 2.0 من .NET Framework إلى الإصدار 3.5).
- إنه أسهل بكثير من كتابة الاختبارات لمحلل نحوي. ونظرًا لعدم وجود أي قيود على ما يمكنك فعله به، فإنك تتمتع بالسيطرة الكاملة على ما يحدث أثناء عملية التحليل النحوي وكيفية تصرف كل عنصر عند مواجهته (بل قد تقرر حتى أن تتصرف عناصر معينة بشكل مختلف حسب السياق).
- سيكون الكود أبسط لأن العديد من الأمور، مثل معالجة الأخطاء والاستثناءات وما إلى ذلك، يتولى الإطار نفسه معالجتها بالفعل (وبهذه الطريقة، لن تزدحم بها شفرة البرمجة دون داعٍ).
- وأخيرًا، تأتي معظم برامج تحليل الجمل مع بعض القيود: فهي لا تدعم سوى قواعد نحوية معينة أو هياكل محددة ضمنها، في حين أن إنشاء برنامج تحليل جمل خاص بك يتيح لك إنشاء أي نوع من القواعد النحوية التي تناسب احتياجاتك على أفضل وجه.
البروكسيات السكنية.
إذا كنت تقوم بتحليل بيانات HTML التي تم استخراجها من مواقع الويب، فيمكنك استخدام بعض أدوات الأتمتة.
هل تعلم أن تبديل الخوادم الوكيلة أمر بالغ الأهمية لاسترداد البيانات الصحيحة بسرعة؟
تحجب العديد من المواقع الإلكترونية أدوات استخراج البيانات إذا لم تستخدم بروكسيات سكنية متناوبة. فهذه البروكسيات لا تكتفي بإخفاء عنوان IP الخاص بها ومنع الحظر فحسب، بل يمكنها أيضًا توزيع الطلبات على آلاف عناوين IP.
يوفر IPBurger ميزة التناوب التلقائي للبروكسي مع عدد غير محدود من الخيوط والاتصالات المتزامنة. وهذا يعني أنه يمكنك زيادة معدل جمع البيانات بسرعة دون القلق أبدًا من حظر عناوين IP.
اطلع على بروكسيات استخراج البيانات من المواقع الإلكترونية الخاصة بنا لمزيد من التفاصيل.
