برنامج تعليمي موجز لكشط بيانات الطقس باستخدام نصوص مشروحة (الجزء 1/3)

أحد الموضوعات البحثية الرئيسية في مختبرنا هو التنظيم الاجتماعي للحرارة. لذلك ، يتضمن الكثير من أبحاثنا جمع بيانات درجة الحرارة بأشكال مختلفة (مثل درجة حرارة الجسم الأساسية أو المحيطية للمشارك أو درجة الحرارة المحيطة في المختبر). 

بالنسبة لأحد مشاريعنا التي نجريها هذا العام ، ركزنا على درجة حرارة مختلفة قليلاً: بيانات الطقس التاريخية من أكثر من 26,000 موقع بين عامي 2012 و 2020. قمنا أيضًا بجمع بيانات الطقس لمشاريع أخرى ، بما في ذلك مشاريع من قبل مسرع العلوم النفسية. بشكل عام ، احتجنا إلى جمع بيانات الطقس لأكثر من 10,000,000 نقطة بيانات.

ما لم تكن على استعداد لاسترداد كل هذه البيانات يدويًا ، فإن بعض مهارات البرمجة ضرورية لإكمال هذه المهمة. ستعرفك هذه السلسلة المكونة من ثلاث منشورات على الاستخراج الهائل للبيانات عبر الإنترنت ، وهي ممارسة يمكن تصنيفها تحت مصطلح "تجريف الويب".

في المنشور الأول من هذه السلسلة ، سنحدد مفهوم تجريف الويب ونقدم لك مبادئه الأساسية. في المنشور الثاني ، سنقدم واجهة برمجة التطبيقات (المحددة أدناه) التي اخترناها لأداء تجريف البيانات ومناقشة البرامج النصية لكشط البيانات الرئيسية (بالإضافة إلى إتاحة إصدار عام من نصوص تجريف البيانات الخاصة بنا) ، ثم في المنشور الثالث ، سوف نوضح كيفية استخدام البرامج النصية حتى لمن هم على دراية بالبرمجة.

ما هو تجريف الويب؟

أفضل تعريف ويكيبيديا لتجريف الويب هو "تجريف البيانات المستخدمة لاستخراج البيانات من مواقع الويب". بمعنى آخر ، تتمثل عملية تجريف الويب في استخراج البيانات المخزنة في مكان ما على بعض مواقع الويب. 

إليك مثال ملموس: عندما تذهب إلى الموقع https://www.weather.com، سوف تحصل على درجة الحرارة الحالية وظروف الطقس للموقع. هذا ما حصلنا عليه عندما ذهبنا إلى هذا الموقع:

تجريف ملف درجة الحرارة و احوال الطقس المعروضة في هذه الصفحة تتكون من استخراج البيانات التالية: 27 درجة مئوية و Très nuageux (= غائم جدًا في اللغة الإنجليزية).

يعد استخراج هذه البيانات يدويًا أمرًا سهلاً ولا يتطلب الكثير من الجهد: ما عليك سوى الوصول إلى عنوان URL أعلاه وقراءة الصفحة. لكن تخيل الآن أنه عليك القيام بذلك 10,000,000 مرة لمواقع مختلفة جدًا. يمكن أن يكون هذا ألمًا ملكيًا ولا يستحق العناء. يساعدك تجريف البيانات على أتمتة ما كان يمكن أن يكون مهمة ضخمة إذا تم إكمالها يدويًا.

كيف يمكننا أتمتة استخراج البيانات من موقع على شبكة الإنترنت؟

يتم تخزين جميع البيانات التي تراها على صفحة الويب في التعليمات البرمجية المصدر لصفحة الويب هذه (بطريقة شفافة إلى حد ما). فيما يلي عينة من الكود المصدري لصفحة weather.com التي وصلنا إليها سابقًا (يمكنك معرفة كيفية الوصول إلى شفرة المصدر لصفحة ويب في Google Chrome هنا): 

كما ترون ، فإن درجة الحرارة و احوال الطقس البيانات التي كنا مهتمين بها (27 درجة مئوية و Très nuageux) في الكود المصدري لصفحة الويب تلك. نظرًا لأن المعلومات متوفرة في التعليمات البرمجية المصدر ، يمكنك برمجة برنامج نصي يستخرج البيانات عن طريق "تحليل" شفرة المصدر لصفحة الويب. تتطلب برمجة نص برمجي لكشف الويب معرفة برمجية بلغة تسمح لك بتنفيذ طلبات الإنترنت (مثل python أو R).

استخراج البيانات من الكود المصدري لصفحة الويب أمر ممكن لأن الكود المصدري لصفحة الويب يميل إلى أن يكون له نفس البنية عبر عمليات الوصول المتعددة. قارنه بالمنزل: إذا قمنا ببناء نسخ مختلفة من منزلك ، فلن تحتاج إلى خريطة لتجد طريقك إلى الحمام في أحد الحيوانات المستنسخة ، مما يعني أنه لا داعي للقلق في حالة حدوث حالة طارئة. .

يمكنك أن تجرب بنفسك من خلال البحث عن بيانات الطقس لمكان آخر في شريط البحث الخاص بـ https://www.weather.com وستجد ذلك درجة الحرارة و احوال الطقس كلاهما موثق في الكود المصدري لصفحة الويب بطريقة قريبة جدًا عبر عمليات الوصول (مرة أخرى ، راجع هنا كيفية العثور على شفرة المصدر لصفحة ويب في Google Chrome):

دور API

ربما يكون لديك انطباع بأن تجريف الويب ليس دائمًا مهمة سهلة. السبب في صياغتنا لها بالطريقة التي فعلناها هو أن معظم الخدمات عبر الإنترنت ليست متحمسة تمامًا لمشاركة بياناتها دون تعويض مالي. هذا يقود معظمهم إلى منع محاولات كشط البيانات. 

في ما يلي بعض العوائق التي قد تواجهها عند إلغاء محتوى صفحات الويب:

  • قد لا يتم توثيق البيانات التي تراها على صفحة الويب في الكود المصدري لصفحة الويب تلك (أو على الأقل ليس بشكل مباشر ، إذا تم إنشاؤها ديناميكيًا من خلال JavaScript ، على سبيل المثال).
  • يمكن أن يختلف هيكل الكود المصدري من وصول إلى وصول ، مع إنشاء أسماء متغيرة ديناميكيًا.
  • يمكن لموقع الويب اكتشاف محاولات الإلغاء ومنعها عن طريق تحديد عدد مرات الوصول في الدقيقة (عند عدم حظر جميع عمليات الوصول).

في حالتنا ، يتطلب استخراج بيانات الطقس التاريخية الضخمة منا الاشتراك في واجهة برمجة التطبيقات (المعروفة باسم API).

باختصار ، API هي واجهة بينك (النظير A) والخدمة التي تريد استخراج البيانات منها (النظير B). تم تصميم هذه الواجهة لتسهيل الاتصال بين النظيرين ، مع توحيد وسائل الاتصال لكل من طلب البيانات واستلامها.

توجد واجهات برمجة تطبيقات مختلفة لنفس المعلومات (مثل الطقس). تختلف أسعارها اعتمادًا على عوامل متعددة مثل جودة البيانات المقدمة أو عدد عمليات الوصول الممنوحة خلال فترة زمنية معينة.

ملاحظات ختامية

في هذا المنشور ، وصفنا المبادئ الأساسية لكشط الويب وكيفية تنفيذه. 

في المنشور الثاني من هذه السلسلة ، سنقدم لك واجهة برمجة التطبيقات (API) التي اخترناها لأداء تجريف البيانات وسنصف الجزء الرئيسي من نصوص تجريف البيانات التي تمت برمجتها من قبل أحدنا (باستيان).

كتب هذا المنشور باستيان باريس وهانس إيجيزرمان

أفكار 2 على "برنامج تعليمي موجز لكشط بيانات الطقس باستخدام نصوص مشروحة (الجزء 1/3)"

اترك تعليق

يستخدم هذا الموقع نظام Akismet لتقليل الرسائل الضارة. تعرف كيف تتم معالجة بيانات تعليقك.

%d المدونين مثل هذا: