11.13. Ekstrakcja wszystkich adresów URL z dokumentu HTML
Problem
Chcemy odnaleźć wszystkie lokalizatory URL na danej stronie WWW.
Rozwiązanie
Czy chodzi jedynie o hiperłącza (czyli URL-e stanowiące wartość atrybutu HREF
w znaczniku <A
)? Czy może interesują nas również URL-e w osadzonych obiektach — obrazkach lub apletach? A może po prostu chcemy odnaleźć wszystkie URL-e, także te wymienione w treści strony?
Wbrew pozorom, ten ostatni przypadek jest najprostszy. Ekstrakcję URL-i przeprowadzić można za pomocą metody URI.extract
; możemy zażądać wyodrębnienia wszystkich URL-i w danym łańcuchu bądź ograniczyć się tylko do ich podzbioru. W poniższym przykładzie wykorzystujemy zarówno pierwszą, jak i drugą możliwość:
require 'uri' text = ...
Get Ruby. Receptury now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.