VBA Web Scraping على التفوق
⚡ ملخص ذكي
مسح الويبping باستخدام VBA extracنقل بيانات ts من صفحات الويب HTML مباشرةً إلى Excel، باستخدام أتمتة Internet Explorer و Microsoft مكتبة كائنات HTML للتنقل في موقع، وقراءة جدول HTML، وكتابة القيم المجمعة في خلايا ورقة العمل.

ما هو مسح البيانات؟ping?
استخراج البياناتping هي التقنية التي تساعد extracيمكنك نقل المعلومات المطلوبة من صفحة ويب HTML إلى ملف محلي على جهازك. عادةً ما يكون هذا الملف المحلي ملف Excel أو ملف Word أو أي نوع آخر. Microsoft تطبيق مكتبي. يساعد في توجيه المعلومات المهمة من صفحة الويب.
استخراج البياناتping تُصبح هذه التقنية ذات قيمة في مشروع بحثي يعتمد على الإنترنت بشكل يومي. على سبيل المثال، لنفترض متداولًا يوميًا يستخدم ماكرو في برنامج إكسل لاستخراج معلومات السوق من موقع إلكتروني مالي إلى جدول بيانات إكسل باستخدام لغة VBA.
كيفية إعداد ماكرو Excel قبل استخراج البياناتping (متصفح الانترنت)
هناك متطلبات مسبقة معينة يجب تنفيذها على ملف ماكرو Excel قبل بدء عملية استخراج البياناتping .
وهذه المتطلبات الأساسية هي كالتالي:
الخطوة 1) افتح ماكرو قائم على برنامج Excel وقم بالوصول إلى خيار المطور في Excel.
الخطوة 2) حدد خيار Visual Basic الموجود ضمن شريط أدوات المطور.
الخطوة 3) أدخل وحدة نمطية جديدة.
الخطوة 4) قم بتهيئة روتين فرعي جديد.
Sub test() End Sub
ستكون نتيجة الوحدة على النحو التالي:
الخطوة 5) يمكنك الوصول إلى خيار "المرجع" ضمن علامة التبويب "الأدوات" والإشارة إلى Microsoft مكتبة كائنات HTML و Microsoft ضوابط الإنترنت.
يجب الإشارة إلى الملفات التالية في الوحدة، لأنها تساعد في فتح متصفح إنترنت إكسبلورر وتسهيل كتابة البرامج النصية للماكرو.
أصبح ملف Excel الآن جاهزًا للتفاعل مع متصفح Internet Explorer. الخطوة التالية هي دمج نصوص الماكرو التي تسهل استخراج البيانات.ping بلغة HTML.
كيفية فتح متصفح إنترنت إكسبلورر باستخدام لغة VBA في برنامج إكسل
الخطوة 1) قم بتهيئة المتغير في الروتين الفرعي كما هو موضح أدناه.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument
الخطوة 2) لفتح متصفح إنترنت إكسبلورر باستخدام VBA، اكتب ie.Visible = True واضغط على F5.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument ie.Visible = True
سيبدو شكل الوحدة كما يلي:
كيفية فتح موقع ويب في متصفح إنترنت إكسبلورر باستخدام لغة VBA
فيما يلي خطوات فتح موقع ويب في متصفح إنترنت إكسبلورر باستخدام لغة VBA.
الخطوة 1) بمجرد أن تتمكن من الوصول إلى متصفح إنترنت إكسبلورر باستخدام لغة VBA في برنامج إكسل، فإن الخطوة التالية هي الوصول إلى موقع ويب باستخدام لغة VBA. ويتم ذلك من خلال خاصية Navigate، حيث URL يتم تمريرها بين علامتي اقتباس مزدوجتين. اتبع الخطوات الموضحة.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE
الخطوة 2) اضغط على F5 لتشغيل الماكرو. ستفتح صفحة الويب التالية كما هو موضح.
أصبح ماكرو Excel الآن جاهزًا لتنفيذ عملية المسح الضوئيping الوظائف. توضح الخطوة التالية كيفية استخراج المعلومات.tracتم استخراج البيانات من متصفح إنترنت إكسبلورر باستخدام لغة VBA.
كيفية استخراج المعلومات من موقع ويب باستخدام VBA
لنفترض أن المتداول اليومي يرغب في الوصول إلى البيانات من الموقع الإلكتروني يوميًا. في كل مرة ينقر فيها المتداول اليومي على الزر، يجب أن يتم جلب بيانات السوق تلقائيًا إلى برنامج Excel.
من خلال الموقع الإلكتروني المذكور أعلاه، من الضروري فحص عنصر ما وملاحظة كيفية تنظيم البيانات.
الخطوة 1) يمكنك الوصول إلى شفرة المصدر لملف HTML أدناه بالضغط على مفتاحي Control + Shift + أنا.
<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 "https://demo.guru99.com/test/web-table-element.php" Do DoEvents Loop Until ie.readyState = READYSTATE_COMPLETE Set doc = ie.document
كما تلاحظ، البيانات مُهيكلة في جدول HTML واحد. لذا، لاستخراج البيانات كاملةً من جدول HTML، يجب تصميم ماكرو يجمع البيانات كمجموعة.
ثم يتم لصق المجموعة في برنامج إكسل. لتحقيق النتائج المرجوة، اتبع الخطوات التالية.
الخطوة 2) قم بتهيئة مستند HTML في الروتين الفرعي.
الخطوة 3) قم بتهيئة عنصر المجموعة الموجود في مستند HTML.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://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 باستخدام حلقة متداخلة كما هو موضح.
Sub test() Dim ie As New InternetExplorer Dim doc As New HTMLDocument Dim ecoll As Object ie.Visible = True ie.Navigate "https://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 باستخدام خاصية النطاق أو خاصية الخلايا في ورقة العمل. ولتبسيط نص VBA البرمجي، يتم تهيئة بيانات المجموعة باستخدام خاصية الخلايا في ورقة العمل رقم 1 في المصنف.
بعد تجهيز نص الماكرو، قم بتعيين الإجراء الفرعي لزر في برنامج Excel ثم اخرج من وحدة VBA. سمِّ الزر "تحديث" أو أي اسم مناسب آخر. في هذا المثال، الزر مُسمى "تحديث".
الخطوة 5) اضغط على زر التحديث للحصول على الناتج أدناه.
الخطوة 6) قارن النتائج في برنامج Excel مع النتائج في برنامج Internet Explorer.











