• 0

كيف أحصل على جميع روابط URL من صفحة ويب معيّنة بلغة روبي؟

لنقل بأنّ هناك صفحة HTML على الإنترنت بحيث:

<div class="heat">
   <a href='http://example.org/site/1/'>site 1</a>
   <a href='http://example.org/site/2/'>site 2</a>
   <a href='http://example.org/site/3/'>site 3</a>
</div>

وأريد استخدام لغة روبي للحصول على الرّوابط بحيث يكون المُخرج مصفوفة كالتّالي:

l = ['http://example.org/site/1/', 'http://example.org/site/2/', 'http://example.org/site/3/']

فكيف يُمكنني أن أقوم بذلك؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

يُمكنك القيام بالأمر بالاستعانة بمكتبة nokogiri على روبي، وذلك كالآتي:

require 'nokogiri'
doc = Nokogiri::HTML.parse(<<-HTML_END)
<div class="heat">
   <a href='http://example.org/site/1/'>site 1</a>
   <a href='http://example.org/site/2/'>site 2</a>
   <a href='http://example.org/site/3/'>site 3</a>
</div>
HTML_END

l = doc.css('div.heat a').map { |link| link['href'] }

قُمنا بوضع الـHTML بين وسمي  HTML_END ثّم قمنا بالحصول على وسوم a داخل الـHTML والتّي تحتوي على الروابط، ثمّ وصلنا إلى الروابط من href وأسندناها إلى المُتغيّر l.

المُخرج:

["http://example.org/site/1/", "http://example.org/site/2/", "http://example.org/site/3/"]

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن