11.15. Konwertowanie ściągniętego z internetu dokumentu HTML na tekst
Problem
Chcemy otrzymać czysty tekst odzwierciedlający zawartość strony WWW.
Rozwiązanie
Biblioteka open-uri
jest wygodnym środkiem do pobierania zawartości stron WWW: umożliwia ona otwieranie zasobów identyfikowanych przez URL-e tak, jakby były one plikami.
require 'open-uri' example = open('http://www.example.com/') # => #<StringIO:0x8519188> html = example.read
Podobnie jak w przypadku pliku, metoda read
zwraca łańcuch. Za pomocą szeregu wywołań metod sub
i gsub
można łańcuchowi temu nadać bardziej czytelną postać:
plain_text = html.sub(%r{<body.*?>(.*?)</body>}mi, '\1').gsub(/<.*?>/m, ' '). gsub(%r{(\n\s*){2}}, "\n\n")
Ponadto, wykorzystując standardową bibliotekę ...
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.