تجريف الويب باستخدام Ruby - تعليمي

نشرت: 2017-08-24

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

يساعد تجريف الويب على استخراج البيانات المستهدفة عبر الإنترنت لاستخدامها مرة أخرى بواسطة محرك التحليلات أو أداة ذكاء الأعمال. يظل الهدف من تجريف الويب متنوعًا -

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

تخيل الفوائد إذا تمكنا من هيكلة بيانات الويب والتخلص من الضوضاء وتصديرها إلى تنسيقات يمكن للآلة قراءتها. دعونا نرى كيف يمكن القيام بذلك باستخدام روبي.

اختيار نص الترميز

استخراج البيانات والتنفيذ الفعلي لممارسات تجريف الويب ليس بالأمر السهل. ستجعل المعرفة الأولية بـ CSS و HTML والنص البرمجي الصحيح للتشفير رحلتك سلسة. سيلعب اختيارك للنص البرمجي للتشفير دورًا مهمًا في هذا السياق. دعنا نتعرف على سبب قيام Ruby بإحداث ضجة في السوق.

إذا كنت تخطط لإطلاق برنامج تجريف الويب الأول الخاص بك ، فيمكن أن تلعب Ruby دور لغة برمجة نصية موثوقة. هناك أسباب قليلة مسؤولة عن الشعبية التي لا مثيل لها لهذه اللغة ، والأسباب التالية ستساعدك على فهم سبب فعاليتها!

  • نص قوي : Ruby-On-Rails هو نص برمجي قوي وفعال للغاية لكشط الويب. بالنسبة للمبتدئين والمبتدئين ، ثبت أن هذه اللغة المعينة مورد قوي.
  • مجتمع موثوق : تأتي Ruby جنبًا إلى جنب مع فريق قوي من المطورين الذين يشكلون مجتمعًا موثوقًا به ويمكن الاعتماد عليه بشكل كبير. مع ملايين الوثائق ، لن تكون هناك مشكلة كبيرة بالنسبة لك!
  • سهولة التثبيت : إجراء التثبيت موثق جيدًا ويسهل اتباعه إلى حد ما.

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

دليل خطوة بخطوة

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

في هذا الدليل ، سنقوم بكشط عناوين أول 100 قائمة على OLX للسيارات المستعملة.

عملية الإعداد

فيما يلي المتطلبات الأساسية لتطوير إعداد كامل لاستخراج الويب باستخدام Ruby.

  • يجب أن يحتوي جهاز الكمبيوتر الخاص بك ، سواء كان سطح مكتب أو كمبيوتر محمول ، على Ruby عليه. إذا كنت من الموالين لنظام التشغيل Mac ، فسيتم الانتهاء من نصف المهمة.
  • سوف تحتاج إلى محرر نصوص. هذا ضروري لكتابة أوامر البرنامج. إذا لم يكن جهاز الكمبيوتر الخاص بك يحتوي على خيار مدمج ، فحاول تنزيل Sublime Text. مع الميزات المثيرة وأدوات التحكم الرائعة ، سيجعل محرر النصوص هذا الترميز مثيرًا وممتعًا.
  • شرط آخر هو المعرفة المتعمقة لاستخدام HTML و CSS. إذا كنت تخطط لإتقان فن تجريف الويب ، فستكون معرفة CSS و HTML أمرًا بالغ الأهمية.
  • تعرف على روبي. القليل من المعلومات ضروري في هذا السياق. يمكنك التحقق من بعض الدورات التدريبية عبر الإنترنت وتحسين قاعدة المعرفة الخاصة بك. مع وجود هذه العمليات والعوامل في مكانها الصحيح ، فقد حان الوقت لبدء الخطوات الحاسمة.

الخطوة 1: تثبيت التبعيات

أثناء عملية التثبيت ، تأكد من حصولك على معلومات كاملة عن أحجار روبي الثلاثة المفيدة. تشمل هذه الخيارات الثلاثة:

  • نوكوجيري
  • HTTParty
  • نقب

نظرًا لأننا أوضحنا بالفعل قليلاً عن Nokogiri ، فلنناقش HTTParty و Pry. HTTParty هو جوهرة سيستخدمها برنامج مكشطة الويب الخاص بنا لإرسال طلبات HTTP إلى الصفحات التي نقوم بكشطها. سنستخدم HTTParty لإرسال طلبات GET ، والتي ستعيد جميع محتويات HTML للصفحة كسلسلة. لتصحيح الأخطاء ، نستخدم Pry ، وهو حجر ياقوت. سيساعدنا ذلك في تحليل كود صفحة الويب وهو مكون أساسي في هذا الإعداد.

اتبع الأوامر أدناه وقم بتشغيلها على جهازك لتثبيت هذه الأحجار الكريمة على جهاز الكمبيوتر الخاص بك.

تثبيت جوهرة nokogiri

حزب تثبيت الأحجار الكريمة

تثبيت جوهرة نقب

الخطوة 2: إنشاء ملفات مكشطة

سيتعين عليك إنشاء مجلد باسم nokogiri_tutorial في أي من المواقع المفضلة على جهاز الكمبيوتر الخاص بك. سطح المكتب هو المكان المثالي للقيام بذلك. الخطوة التالية هي تنزيل محرر نصوص مثل "Sublime Text" أو أي خيار آخر من اختيارك وحفظ الملف في هذا المجلد المسمى "web_scraper.RB". بمجرد إكمال هذه الخطوات ، من الجيد العمل على التبعيات.

الخطوة 3: إرسال طلبات HTTP إلى الصفحة

ابدأ بإنشاء عملية متغيرة تسمى "الصفحة" وتأكد من أنها تساوي طلب HTTParty GET للصفحة التي نقوم بإلغاء عملية كشطها.

في هذه الحالة: https://www.olx.in/all-results/q-cars/

بعد ذلك ، يمكنك إدخال "Pry. بدء (ربط). " انتقل وابحث عن المجلد المحدد كملف web_scraping.Rb. احفظه على الفور على سطح المكتب وافتح الجهاز عن طريق إدخال هذا الأمر.

سطح المكتب / nokogiri_tutorial

برنامج تجريف الويب الخاص بك جاهز للتنفيذ. يمكنك تشغيل هذا الأمر وتشغيله:

روبي web_scraper.RB

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

الخطوة 4: الانتقال إلى NokoGiri

الهدف هنا هو أولاً تحويل قوائم السيارات هذه وتغييرها إلى كائنات NokoGiri ، لأن هذا أمر بالغ الأهمية للتحليل. يعد إنشاء المتغير أمرًا مهمًا ، وسيتعين عليك تطوير واحدة جديدة باسم "parse_page". لدى Nokogiri طريقة مميزة لتحويل سلاسل HTML إلى كائنات Nokogiri. يمكنك ترك الحدق في الجزء السفلي من الكود.

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

انطلق وأنشئ ملف HTML في نفس المجلد باسم "cars.html" وانسخ والصق نتائج الأمر parse_page في هذا الملف. ستكون بيانات HTML المنسقة هذه في متناول اليد للرجوع إليها لاحقًا.

قبل البدء بالخطوة التالية ، اخرج من Pry في جهازك الطرفي.

الخطوة 5: تحليل البيانات

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

نظرًا لأننا وجدنا أن القوائم موجودة داخل div مع اسم الفئة "content" ، فهذه هي الأوامر التالية :

parse_page.css (". content")

parse_page.css ('. content'). css ('. row'). css ('. hdrlnk')

سيارات_عرى

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

الخطوة 6: تصدير ملفات البيانات إلى CSV

عندما تصل إلى الخطوة 6 ، يجب أن تكون قد أكملت عملية الكشط بنجاح وتحولت البيانات غير المهيكلة إلى مجموعات بيانات منظمة. دعنا الآن نعود إلى المحطة. اخرج من برنامج Pry إذا كنت لا تزال داخله بحيث تكون الوحدة الطرفية في مجلد nokogiri_tutorial الذي يحتوي على برنامج الكشط وملف cars.html. الآن اكتب الأمر التالي:

لمس cars.csv

الآن سيتم تركك مع ملف CSV فارغ حيث يمكنك حفظ البيانات من cars_array. يمكنك الآن كتابة نص برمجي بسيط لكتابة هذه البيانات في ملف CSV الجديد الخاص بنا وستحصل على بيانات قوائم السيارات المهيكلة الخاصة بك في ملف CSV. سيجعل هذا الأمر أسهل في المعالجة والتلاعب عندما تريد القيام بذلك.

أفكار فراق

نأمل أن يكون هذا قد أعطاك صورة تقريبية لكيفية الشروع في إلغاء موقع ويب باستخدام Ruby. حان الوقت لاستكشاف مواقع أكثر تعقيدًا وصعوبة والزحف إليها باستخدام هذه المهارة التي تم إتقانها حديثًا.