كيفية كشط البيانات في 5 خطوات سهلة

نشرت: 2020-02-17
عرض جدول المحتويات
كيفية كشط البيانات بخمس طرق سهلة
1. اختر لغة برمجة أو أداة لكشط البيانات
2. كشط صفحة ويب واحدة وتحليل المكونات
3. تحديد إستراتيجية تنظيف البيانات وتخزينها
4. أنشئ قائمة بصفحات الويب أو اكتب Regex لكشط البيانات
5. اكتب الكود والاختبار
طرق كشط البيانات البديلة
استخدم وظيفة Excel Filter لكشط البيانات
استخدم وظيفة Text-to-Columns في Microsoft Word لفصل البيانات حسب العمود
استخدم IMPORTXML في أوراق Google
استخدم IMPORTHTML في جداول بيانات Google
باستخدام ملحقات الكروم
استنتاج

كم مرة تحتاج إلى كشط البيانات من موقع ويب لعملك ويبدو أنه يمثل الكثير من الألم؟ سيعلمك منشور المدونة هذا كيفية كشط البيانات في 5 خطوات سهلة.

تمت كتابة هذا المنشور لمحترفي البرامج الذين يحتاجون إلى استخراج البيانات من صفحات الويب أو ملفات PDF ويريدون أن تكون العملية سريعة وسهلة قدر الإمكان. هناك العديد من الطرق لكشط البيانات ، لكن هذه المقالة ستركز على عدد قليل من الأساليب الأكثر شيوعًا التي يستخدمها المطورون المحترفون: XPath ، و Regular Expressions ، و Beautiful Soup (BSA) ، و Scrapy ، ومكتبة طلبات Python (PRL) ، و Selenium Webdriver. يمكن تثبيت جميع أدوات الكشط هذه بسهولة مع التعليمات المقدمة لكل منها. يتم تضمين جدول يلخص هذه الأدوات أدناه ويصف إيجابيات / سلبياتهم وروابط لمزيد من المعلومات عنها عند الاقتضاء. يتضمن الجدول بعض الأساليب الأخرى غير الشائعة التي جربتها أيضًا وتم تضمينها للتأكد من اكتمالها.

يمكن إجراء عملية جمع البيانات على موقع الويب بأي لغة. في هذه المقالة ، سأوضح كيفية كشط البيانات باستخدام Python لأنه من السهل جدًا تثبيتها وسهل التعلم إلى حد ما خاصة إذا كنت تعرف بالفعل لغة برمجة أخرى لأن بناء الجملة يشبه Java و C و PHP. يدعم Python مكتبات متعددة لكشط البيانات الموضحة في الجدول. القشط هي أداة يجب أن يعرفها الجميع كيف يستخدمها لأنها توفر رؤى قيمة عن السوق المستهدف و / أو المنافسين و / أو العملاء.

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

5 طرق سهلة لكشط البيانات

كيفية كشط البيانات بخمس طرق سهلة

1. اختر لغة برمجة أو أداة لكشط البيانات

"الرجل جيد مثل أدواته". ومن ثم تحتاج إلى اختيار الأدوات الخاصة بك لكشط الويب بطريقة تناسب احتياجاتك. على الرغم من أن بعض البرامج الجاهزة للاستخدام قد تبدو سهلة الاستخدام ، إلا أنها قد لا تسمح لك بإجراء الكثير من تغييرات التكوين. في الوقت نفسه ، قد لا تحتوي العديد من الأدوات على مكون إضافي لحفظ البيانات التي قمت بكشطها في قاعدة بيانات أو على السحابة. عندما يتعلق الأمر بلغات البرمجة المستخدمة في تجريف البيانات اليوم ، فهناك Node.js و Python و Ruby والمزيد. ولكن من بين هؤلاء ، تعد Python هي الأكثر شيوعًا بفضل منحنى التعلم الأسهل ، وبناء الجملة البسيط ، وتوافر مكتبات خارجية متعددة ، وكون اللغة مفتوحة المصدر.

هناك العديد من المكتبات مثل BeautifulSoup و Scrapy التي يمكن استخدامها للزحف إلى صفحات الويب وإنشاء عناكب زحف على الويب وتشغيل وظائف الكشط في فترات زمنية محددة. تسمح Python بمرونة هائلة عندما يتعلق الأمر بدمج الأنظمة الأخرى مع محرك الكشط. يمكنك بسهولة حفظ بياناتك التي تم كشطها على جهازك المحلي ، أو في قواعد البيانات ، أو على S3 Storage ، أو حتى تفريغها في ملف Word أو Excel .

2. كشط صفحة ويب واحدة وتحليل المكونات

قبل الشروع في استخراج معلومات المنتج من ألف صفحة منتج على Amazon ، تحتاج إلى الوصول إلى الصفحة والحصول على صفحة Html بأكملها لتحليلها واتخاذ قرار بشأن إستراتيجية. يمكن أن تتواجد البيانات الموجودة في صفحات Html داخل أزواج محددة من القيم الرئيسية في العلامات أو النص داخل العلامات. يمكنك استخدام مكتبات مثل BeautifulSoup لتحديد العلامة الدقيقة التي تريد استخراج البيانات منها في كل صفحة ويب ثم تشغيل الكود في حلقة. بهذه الطريقة ، لكل صفحة ويب لمنتج واحد ، سيتم تشغيل الكود الخاص بك واستخراج نفس المعلومات - على سبيل المثال ، تفاصيل السعر.

3. تحديد إستراتيجية تنظيف البيانات وتخزينها

حتى قبل أن تبدأ في تجريف البيانات ، يجب أن تقرر مكان تخزين البيانات. هذا لأن كيفية معالجة البيانات ستعتمد على مكان تخزينها. هناك العديد من الخيارات المتاحة. يمكنك الاختيار بين قواعد بيانات NoSQL و SQL ، اعتمادًا على ما إذا كانت البيانات التي تقوم بكشطها ستنظم على أساس غير منظم. بالنسبة للبيانات غير المهيكلة ، يمكنك اختيار قواعد بيانات SQL حيث يمكنك تخزين البيانات في صفوف تتكون من مجموعة من السمات. بالنسبة للبيانات غير المهيكلة ، حيث لا توجد سمات محددة ، يمكنك الانتقال إلى قواعد بيانات NoSQL. فيما يتعلق بقاعدة البيانات التي سيتم حفظ البيانات بها ، يمكنك اختيار MySQL أو Postgres لـ SQL. تقدم Amazon RDS قواعد بيانات على السحابة حيث يمكنك تخزين بياناتك والدفع بناءً على الاستخدام.

بالنسبة إلى NoSQL ، يمكنك اختيار أحد الحلول المُدارة بالكامل والسريعة للغاية ، مثل DynamoDb أو ElasticSearch . تتمتع قواعد البيانات المختلفة بمزايا توفر استرجاعًا سريعًا ، وبعضها يوفر مساحة تخزين أرخص لكل تيرابايت . تعتمد قاعدة البيانات التي تختارها على حالة الاستخدام الخاصة بك وبالتالي. هناك حاجة إلى بعض الأبحاث حول هذا الأمر قبل أن تقرر أحدها. في حالة احتياجك إلى تخزين صور ومقاطع فيديو مكشوفة كبيرة الحجم ، يمكنك استخدام AWS S3 أو Glacier . يستخدم هذا الأخير عندما تريد تخزين كميات هائلة من البيانات بتنسيق مؤرشف. لن تحتاج إلى الوصول كثيرًا في حين أن الأول هو الحل الأكثر استخدامًا. هذا بمثابة شيء مثل القرص الصلب على الإنترنت. يمكنك إنشاء مجلدات وحفظ الملفات فيها.

استراتيجية تنظيف البيانات

4. أنشئ قائمة بصفحات الويب أو اكتب Regex لكشط البيانات

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

على سبيل المثال ، قد ترغب في الزحف إلى بيانات المنتج لجميع أجهزة الكمبيوتر المحمولة على Amazon. الآن قد ترى أن جميع عناوين URL تبدأ بـ “ www.amazon.com/laptube/ <laptubeModelNo> / prodData”. يمكنك نسخ هذا التنسيق باستخدام regex بحيث يتم استخراج جميع عناوين URL هذه وتشغيل وظيفة تجريف الويب على عناوين URL هذه فقط . وليس كل عناوين URL على موقع أمازون. في حالة وجود عدد كبير جدًا من صفحات الويب للزحف إليها ، نوصيك باستخدام نهج معالجة موازية للزحف إلى حوالي عشر صفحات ويب في أي لحظة . إذا كنت تقوم بكشط صفحات الويب واستخراج الروابط منها ، ثم إلغاء صفحات الويب التي تؤدي إليها تلك الروابط ، فيمكنك استخدام نهج يشبه الشجرة للزحف إلى صفحات فرعية متعددة تنشأ من صفحة ويب جذرية في نفس الوقت.

Regex

5. اكتب الكود والاختبار

كل ما ناقشناه حتى الآن كان التحضير. للفعل الأخير من تشغيل الكود وإنجاز المهمة. نادرًا ما يعمل كود تجريف الويب بالطريقة التي تتوقعها بالضبط. هذا لأنه ليس كل صفحات الويب التي تحاول الزحف إليها سيكون لها نفس البنية. على سبيل المثال ، تقوم بتشغيل كود الكشط الخاص بك على 100 صفحة منتج وتجد أن 80 منها فقط قد تم إلغاؤها. والسبب وراء ذلك هو أن 20 صفحة قد تكون في حالة نفاد المخزون وأن بنية صفحة الويب الخاصة بها مختلفة. لن تأخذ هذه الاستثناءات في الحسبان عند كتابة الرمز. ولكن بعد عدة تكرارات ، يمكنك إجراء التغييرات المطلوبة. واستخرج البيانات من جميع صفحات الويب التي تحتاجها.

اختبار الكود

طرق كشط البيانات البديلة

استخدم وظيفة Excel Filter لكشط البيانات

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

كيف تعمل

في Excel ، افتح ورقة جديدة واكتب عنوان URL لموقع الويب المستهدف في الخلية الأولى (على سبيل المثال ، http://www.joes-hardware-store.com/). في الخلية التالية ، أدخل صيغة HTML أو XPath Data Filter (انظر الجدول أدناه للحصول على صيغة XPath Data Filter المستخدمة في هذا المثال) والتي ستستخرج البيانات من صفحة الويب المستهدفة. إذا كنت تريد كشط عدة أعمدة من البيانات ، فكرر الخطوة 1 لكل عمود من البيانات وضعها جنبًا إلى جنب.

كيفية الحصول على عوامل تصفية بيانات XPath في Excel

في Excel ، انقر فوق ملف> خيارات> خيارات متقدمة ، ثم انتقل إلى قسم العرض. حدد المربع بجوار "إظهار علامة تبويب المطور في الشريط" ثم انقر فوق "موافق". هذا موضح في الصورة 1 أدناه:

في Excel ، انقر فوق Developer> Reference ثم قم بالتمرير لأسفل وابحث عن Microsoft XML Document 3.0 (كما هو موضح في الصورة 2 أدناه):

انقر فوق MSXML3 Apress ثم انقر فوق "موافق" (كما هو موضح في الصورة 3 أدناه):

الآن بعد أن تم تثبيت مرجع MSXML3 ، دعنا نجربه. في Excel ، أدخل عنوان URL لصفحة الويب المستهدفة في الخلية A1 ثم صيغة عامل تصفية بيانات XPath في الخلية B1 (على سبيل المثال للحصول على سعر العنصر "123" على صفحة ويب ، ضع صيغة XPath Data Filter في الخلية B1 كما هو موضح في لقطة الشاشة 4 و 5 أدناه):

الآن ، انسخ محتويات الخلية B1 إلى جميع الخلايا المتبقية باستخدام اختصار CTRL + C في Excel. هذا موضح في لقطة الشاشة 6 أدناه:

انسخ عنوان URL لصفحة الويب المستهدفة (في الخلية A1) إلى شريط عناوين Excel. اضغط على Enter لتحميله في المتصفح وشاهد بياناتك تظهر بطريقة سحرية في Excel

كما ترى ، هذه طريقة فعالة للغاية لكشط البيانات. لا توجد آثار متبقية على موقع الويب المستهدف أو نظامك ، على سبيل المثال ، لا يتم إجراء مكالمات API ، ولا يتم تعيين ملفات تعريف الارتباط وما إلى ذلك.

استخدم وظيفة Text-to-Columns في Microsoft Word لفصل البيانات حسب العمود

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

كيف تعمل

في MS Word ، أنشئ مستندًا جديدًا ، على سبيل المثال أداة تجريد قائمة منتجات متجر الأجهزة من Joe ، ثم انسخ / الصق صفحة الويب المستهدفة في مربع النص (انظر لقطة الشاشة 1 أدناه). حدد وظيفة الانتقال في MS Word بالضغط على CTRL + G ثم اكتب بالضبط <<! DOCTYPE HTML [ENTER]. هذا موضح في الصورة 2 أدناه:

حدد وظيفة التشغيل في MS Word بالضغط على ALT + F5 (كما هو موضح في الصورة 3) ويجب أن ترى ما شابه ذلك (انظر الصورة 4 أدناه):

في Excel ، حدد Filters> Text to Columns كما هو موضح في الصورة 5 أدناه:

حدد محدد ثم اختر الفاصل المحدد من القائمة المنسدلة (في هذا المثال ، نستخدم الفاصلة المحددة افتراضيًا).

الآن ، انقر فوق "التالي" وحدد موقع "الفواصل" ، أي افصل بيانات الويب الخاصة بك إلى أعمدة (على سبيل المثال ، أنا أستخدم "،" كفاصل خاص بي). بعد ذلك ، انقر فوق التالي وحدد كيف تريد أن يتعامل Excel مع الخلايا الفارغة ، أي تجاهلها أو استبدالها بقيمة فارغة (على سبيل المثال ، سنقوم بتعيينها على "تجاهل القيم الفارغة"). ثم انقر فوق "إنهاء" لإكمال وظيفة تحويل النص إلى أعمدة.

إذا كانت صفحة الويب المستهدفة لا تحتوي على أعمدة محددة بوضوح ، فقد ترغب في تعيينها على "قيم بديلة" كما هو موضح في لقطة الشاشة 6 أدناه:

كما ترون من لقطة الشاشة 7 أعلاه ، تم فصل بياناتي بنجاح إلى أعمدة نصية فردية ويمكنني الآن بسهولة نسخها / لصقها في موقع آخر على جهاز الكمبيوتر الخاص بي.

هذه الطريقة مفيدة بشكل خاص لاستخراج البيانات من ملفات PDF التي عادةً ما تحتوي على عناوين أعمدة محددة بوضوح. سيوفر لك الكثير من الوقت إذا كان هدفك هو استخراج البيانات تلقائيًا من ملفات PDF متعددة باستخدام وحدات ماكرو Excel لأنه الآن ، يمكنك استخدام نفس قالب MS Word مرارًا وتكرارًا لإنشاء مستندات متعددة بسرعة لكل ملف PDF. 3. استخدم محرر MS Excel VBA لكشط البيانات باستخدام

بالنسبة لهذه الطريقة ، سنستخدم أداة تسمى xvba والتي يمكن تنزيلها من هنا وتعمل تمامًا مثل واجهة برمجة التطبيقات (واجهة برنامج التطبيق). الخبر السار هو أنك لست بحاجة إلى كتابة أي رمز على الإطلاق. الأخبار السيئة هي أنه يجب عليك كتابة HTML لصفحة الويب المستهدفة الخاصة بك ، أي أود أن أقترح القيام بذلك باستخدام MS Word لأنه سيجبرك على تقسيم صفحة الويب الخاصة بك إلى مكوناتها (انظر الصورة 1 أدناه).

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

استخدم IMPORTXML في أوراق Google

عندما تستخدم IMPORTXML لاستخراج البيانات من صفحة ويب ، فإن الخطوة الأولى هي فتح جداول بيانات Google. الخطوة الثانية هي الانتقال إلى Tools> Script Editor. الخطوة الثالثة هي نسخ / لصق كود HTML الخاص بموقعك المستهدف في مربع النص كما هو موضح في الصورة رقم 7 أدناه:

كما ترى من لقطة الشاشة 8 أعلاه ، تم فصل بياناتي بنجاح إلى أعمدة نصية فردية ويمكنني الآن بسهولة نسخها / لصقها في موقع آخر على جهاز الكمبيوتر الخاص بي. لقد استخدمنا هذه الطريقة في الماضي لكشط بيانات Facebook و Twitter لحملة تسويق عبر الإنترنت. إنها أيضًا طريقة جيدة لكشط البيانات من مواقع الويب التي تستخدم AJAX عندما لا تريد استخدام أمر GOTO.

استخدم IMPORTHTML في جداول بيانات Google

تشبه هذه الطريقة الطريقة رقم 3 ، ولكن بدلاً من استخدام IMPORTXML ، سنستخدم IMPORTHTML. الخطوة الأولى هي فتح Google Sheets. الخطوة الثانية هي الانتقال إلى Tools> Script Editor. الخطوة الثالثة هي نسخ / لصق كود HTML الخاص بموقعك المستهدف في مربع النص.

باستخدام ملحقات الكروم

يمكنك كشط بيانات الويب باستخدام ملحقات chrome مثل Data Scraper و Save To CSV. نظرًا لوجود إصدار مجاني ومدفوع من امتدادات chrome (مكشطة البيانات) ، أقترح أن يكون لديك كلاهما لمعرفة أيهما يعمل بشكل أفضل بالنسبة لك.

استنتاج

كشط ما يصل إلى بضع مئات من الصفحات (مع التأكد من ترك فجوة بضع ثوان بين كل شوط). إن كشط موقع ويب مرة واحدة في الشهر سيعمل بشكل جيد مع حل DIY مكتوب بلغة Python. ولكن في حال كنت تبحث عن حل DaaS على مستوى المؤسسات ، فإن فريقنا في PromptCloud يوفر حلاً شاملاً حيث تقدم لنا المتطلبات ونسلمك البيانات التي يمكنك بعد ذلك توصيلها وتشغيلها.

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