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.