تجريف الويب باستخدام VBA
ما هو تجريف البيانات؟
استخراج البيانات هو الأسلوب الذي يساعد في استخراج المعلومات المطلوبة من صفحة ويب HTML إلى ملف محلي موجود في جهازك المحلي. عادةً، يمكن أن يتوافق الملف المحلي مع ملف Excel أو ملف Word أو أي ملف آخر Microsoft تطبيق المكتب. فهو يساعد في توجيه المعلومات الهامة من صفحة الويب.
يصبح استخراج البيانات أمرًا بسيطًا عند العمل على مشروع قائم على البحث بشكل يومي، ويعتمد مثل هذا المشروع بشكل كامل على الإنترنت والموقع الإلكتروني. لمزيد من التوضيح حول هذا الموضوع، دعونا نأخذ مثال المتداول اليومي الذي يدير وحدة ماكرو Excel لسحب معلومات السوق من موقع ويب خاص بالتمويل إلى ورقة Excel باستخدام VBA.
كيفية تحضير Excel Macro قبل إجراء عملية تجريف البيانات باستخدام Internet Explorer؟
هناك بعض المتطلبات الأساسية التي يجب تنفيذها على ملف ماكرو Excel قبل الدخول في عملية تجريف البيانات في Excel.
وهذه الشروط هي كما يلي:-
الخطوة 1) افتح ماكرو يستند إلى Excel وقم بالوصول إلى خيار مطور Excel.
الخطوة 2) حدد خيار Visual Basic ضمن شريط المطور.
الخطوة 3) أدخل وحدة نمطية جديدة.
الخطوة 4) تهيئة روتين فرعي جديد
Sub test() End sub
ستنتج الوحدة كما يلي: -
الخطوة 5) قم بالوصول إلى خيار المرجع ضمن علامة تبويب الأداة والمرجع Microsoft مكتبة كائنات HTML و Microsoft التحكم في الإنترنت.
يجب الإشارة إلى الملفات التالية في الوحدة لأنها تساعد في فتح متصفح Internet Explorer وتسهل تطوير نصوص الماكرو.
الآن أصبح ملف Excel جاهزًا للتفاعل مع Internet Explorer. ستكون الخطوة التالية هي دمج نصوص الماكرو التي من شأنها تسهيل عملية استخراج البيانات بتنسيق HTML.
كيفية فتح Internet Explorer باستخدام Excel VBA؟
الخطوة 1) قم بتهيئة المتغير في البرامج الفرعية كما هو موضح أدناه
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument
الخطوة 2) لفتح إنترنت إكسبلورر باستخدام VBA، اكتب أي مرئية = صحيح والصحافة F5.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Ie.visible=true
ستبدو الوحدة كما يلي: -
كيفية فتح موقع في إنترنت إكسبلورر باستخدام VBA؟
فيما يلي خطوات فتح موقع ويب في Internet Explorer باستخدام VBA
الخطوة 1) بمجرد أن تتمكن من الوصول إلى متصفح الإنترنت باستخدام Excel VBA، فإن الخطوة التالية تتضمن الوصول إلى موقع ويب باستخدام VBA. يتم تسهيل ذلك من خلال خاصية Navigate Attribute، حيث يجب أن يمر عنوان URL كعلامتي اقتباس مزدوجتين في الخاصية. اتبع الخطوات التالية كما هو موضح.
Sub test() Dim, ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.navigate"http://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE
الخطوة 2) - اضغط على F5 لتنفيذ الماكرو. سيتم فتح صفحة الويب التالية كما هو موضح
الآن، أصبح ماكرو Excel جاهزًا فيما يتعلق بأداء وظائف الكشط. ستعرض الخطوة التالية كيف يمكن استخراج المعلومات من إنترنت إكسبلورر باستخدام VBA.
كيفية استخراج المعلومات من موقع الويب باستخدام VBA؟
لنفترض أن المتداول اليومي يريد الوصول إلى البيانات من موقع الويب على أساس يومي. في كل مرة يضغط فيها المتداول اليومي على الزر، يجب عليه سحب بيانات السوق تلقائيًا إلى ملف Excel.
من موقع الويب أعلاه، سيكون من الضروري فحص عنصر ما ومراقبة كيفية تنظيم البيانات.
الخطوة 1) قم بالوصول إلى كود المصدر أدناه لـ HTML بالضغط على Control + Shift + I
<table class="datatable"> <thead> <tr> <th>Company</th> <th>Group</th> <th>Pre Close (Rs)</th> <th>Current Price (Rs)</th> <th>% Change</th> </tr>
سيكون كود المصدر كما يلي: -
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.navigate "http://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document
كما يمكن ملاحظة أن البيانات منظمة كجدول HTML واحد. لذلك، من أجل سحب البيانات بأكملها من جدول html، سيتطلب الأمر تصميم ماكرو يقوم بجمع البيانات في شكل مجموعة.
سيتم بعد ذلك لصق المجموعة في برنامج Excel. ولتحقيق النتائج المرجوة قم بالخطوات المذكورة أدناه: –
الخطوة 2) قم بتهيئة مستند Html في الروتين الفرعي
ستبدو وحدة VBA كما يلي: -
الخطوة 3) قم بتهيئة عنصر المجموعة الموجود في مستند HTML
ستبدو وحدة VBA كما يلي: -
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.navigate "http://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document Set ecoll = doc.getElementsByTagName("table")
الخطوة 4) قم بتهيئة خلايا ورقة Excel بمساعدة الحلقة المتداخلة كما هو موضح
ستبدو وحدة VBA كما يلي: -
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.navigate "http://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document Set ecoll = doc.getElementsByTagName("table")
يمكن تهيئة Excel باستخدام سمة النطاق الخاصة بجدول Excel أو من خلال سمة الخلايا الخاصة بجدول Excel. لتقليل تعقيد نص VBA، يتم تهيئة بيانات المجموعة إلى سمة خلايا Excel الخاصة بالجدول 1 الموجودة في المصنف.
بمجرد أن يصبح البرنامج النصي للماكرو جاهزًا، قم بتمرير وتعيين الروتين الفرعي إلى زر Excel والخروج من وحدة VBA. قم بتسمية الزر كتحديث أو أي اسم مناسب يمكن تهيئته له. في هذا المثال، تتم تهيئة الزر كتحديث.
الخطوة 5) اضغط على زر التحديث للحصول على الإخراج المذكور أدناه
الخطوة 6) قارن النتائج في برنامج Excel مع نتائج Internet Explorer
الملخص
- يتيح تجريف البيانات للمستخدم استخراج المعلومات التي يريدها المستخدم فقط. للعثور على أفضل الأدوات لهذا الغرض، قم بإلقاء نظرة على هذه القائمة من أدوات استخراج الويب التي يمكن أن تساعدك على استخراج المعلومات المطلوبة بكفاءة من مواقع الويب المختلفة.
- يمكن إجراء عملية الكشط باستخدام Internet Explorer.
- تكون عملية الكشط أبطأ في حالة إنترنت إكسبلورر؛ ومع ذلك، فإنه يحقق النتائج المرجوة للمستخدم.
- يجب إجراء عملية الكشط بحذر وحذر مطلقين لأنها قد تؤدي إلى الإضرار بالنظام المستخدم في عملية الكشط وتعطله.