1. منتجات
  2.   HTML
  3.   Ruby
  4.   Nokogiri
 
  

مكتبة روبي مجانية لقراءة وكتابة وتحليل ملفات HTML

مكتبة روبي مفتوحة المصدر لمعالجة مستندات HTML و XML. تدعم قراءة وكتابة وتعديل واستعلام مستندات HTML عبر واجهة برمجة تطبيقات روبي.

في عالم تطوير الويب، تُعد عملية تحليل وتعديل مستندات HTML وXML مهامًا شائعة. تقدم لغة البرمجة Ruby أداة قوية للتعامل مع هذه المهام عبر مكتبة Nokogiri. توفر Nokogiri طريقة أنيقة وفعّالة لتحليل وتعديل مستندات HTML وXML، مما يجعلها أداة أساسية في صندوق أدوات أي مطور Ruby. سواء كنت مبتدئًا أو مطورًا ذو خبرة، فإن المكتبة تُبسّط عملية العمل مع المستندات المهيكلة في Ruby.

Nokogiri هي جوهرة Ruby مفتوحة المصدر قوية جدًا تعمل كجسر بين لغة البرمجة Ruby ومكتبات libxml2 و libxslt. تتيح للمطورين تحليل وتعديل كل من مستندات HTML وXML بسهولة. سواء كنت تقوم بجمع البيانات من المواقع، أو استخراج المعلومات من واجهات برمجة تطبيقات تعتمد على XML، أو إجراء تحويلات على هياكل المستندات، فإنها تُبسّط هذه المهام. تدعم المكتبة البحث في المستندات عبر XPath 1.0، والتحقق من صحة مخطط XSD، ومحلل DOM أو SAX للـ XML، وتحويل XSLT، وHTML4، وHTML5، وغيرها.

تضمن Nokogiri واجهة برمجة تطبيقات سهلة الفهم للقراءة والكتابة وتعديل واستعلام المستندات. توفر المكتبة دعمًا كاملاً لترميز المستندات. للتعامل مع ترميز المستند بشكل صحيح يُنصح دائمًا بتعيين الترميز صراحةً. سهولة الاستخدام، وطرق الاختيار القوية، وقدرات التلاعب الفعّالة تجعلها خيارًا ممتازًا لمهام مثل استخراج البيانات من الويب، ومعالجة XML، وتحليل HTML. لذا انطلق، استكشف ميزاتها، وافتح إمكانات تحليل وتلاعب المستندات بكفاءة في مشاريع Ruby الخاصة بك.

Previous Next

البدء مع نوكوجيري

الطريقة الموصى بها والأسهل لتثبيت Nokogiri هي استخدام RubyGems، أداة إدارة الاعتمادات لـ Ruby. يرجى استخدام الأمر التالي لتثبيت سلس.

تثبيت نوكوجيري عبر RubyGemsx

$ gem install nokogiri

يمكنك أيضًا تثبيته يدويًا؛ قم بتنزيل أحدث ملفات الإصدار مباشرةً من مستودع GitHub.

تحليل مستندات HTML عبر واجهة برمجة تطبيقات Ruby

تتضمن مكتبة نوكوجيري المفتوحة المصدر دعمًا لتحميل وتحليل مستندات HTML وكذلك XML داخل تطبيقات Ruby. يُعد تحليل مستندات HTML وXML حجر الزاوية في قدرات نوكوجيري. توفر المكتبة طريقتين رئيسيتين لتحليل المستندات: من ملف أو من سلسلة نصية. لتحقيق الهدف، أولاً تستخدم فئات Nokogiri::HTML لإنشاء كائن مستند، ثم يمكنك استعراض المستند باستخدام طرق ومحددات مختلفة، مشابهة لـ CSS أو XPath. يوضح المثال التالي كيف يمكن للمطورين تحليل واستعلام مستند باستخدام أوامر Ruby.

كيف تقوم بتحليل واستعلام مستند HTML داخل تطبيقات Ruby؟

#! /usr/bin/env ruby

require 'nokogiri'
require 'open-uri'

# Fetch and parse HTML document
doc = Nokogiri::HTML(URI.open('https://nokogiri.org/tutorials/installing_nokogiri.html'))

# Search for nodes by css
doc.css('nav ul.menu li a', 'article h2').each do |link|
  puts link.content
end

# Search for nodes by xpath
doc.xpath('//nav//ul//li/a', '//article//h2').each do |link|
  puts link.content
end

# Or mix and match
doc.search('nav ul.menu li a', '//article//h2').each do |link|
  puts link.content
end

تعديل مستندات HTML/XML عبر Ruby

تُعد مكتبة نوكوجيري أداة قيمة لأي مطور Ruby يحتاج إلى العمل مع مستندات HTML وXML. تجعل المكتبة من السهل على المطورين تحميل ومعالجة مستندات HTML أو XML باستخدام كود Ruby. تمكّن المطورين من تعديل المستندات بإضافة أو تحديث أو حذف العناصر والسمات. هذا مفيد بشكل خاص عندما تحتاج إلى تعديل صفحات الويب أو إنشاء محتوى ديناميكي. يوضح المثال التالي كيف يمكن للمطورين إضافة عنصر جديد إلى مستند HTML داخل تطبيقات Ruby.

كيفية إضافة عنصر جديد إلى مستند HTML عبر واجهة برمجة تطبيقات Ruby؟

new_element = Nokogiri::XML::Node.new('p', doc)
new_element.content = 'This is a new paragraph.'

# Add the new element to the document
doc.root.add_child(new_element)

استخدام XPath ومحددات CSS عبر Ruby

توفر مكتبة Nokogiri المفتوحة المصدر مجموعة واسعة من الطرق للبحث عن عناصر محددة داخل المستند. تسمح للمستخدمين باستخدام كل من XPath ومحددات CSS للتنقل واختيار العناصر داخل مستند مُحلل داخل تطبيقات Ruby. هذا يجعل من السهل استخراج معلومات محددة أو تعديل بنية المستند. تُظهر الأمثلة التالية مدى سهولة اختيار المطورين للعناصر باستخدام XPath وكذلك محددات CSS باستخدام أوامر Ruby.

كيفية اختيار العناصر باستخدام XPath أو محدد CSS عبر واجهة برمجة تطبيقات Ruby؟

new_element = Nokogiri::XML::Node.new('p', doc)
new_element.content = 'This is a new paragraph.'

# Add the new element to the document
doc.root.add_child(new_element)

 عربي