Ruby:
Een webpagina downloaden

Hoe te:

Ruby maakt het downloaden van een webpagina eenvoudig met bibliotheken zoals net/http en gems zoals open-uri. Zo doe je het met net/http:

require 'net/http'
require 'uri'

url = URI.parse('http://example.com') 
response = Net::HTTP.get_response(url)

puts response.body if response.is_a?(Net::HTTPSuccess)

Je krijgt de HTML-inhoud van http://example.com uitgeprint.

Gebruik van open-uri is nog eenvoudiger:

require 'open-uri'

downloaded_page = URI.open('http://example.com').read
puts downloaded_page

Opnieuw wordt de inhoud van de webpagina op je terminal weergegeven.

Diepgaande Duik

Terug in de vroege dagen van het web was het downloaden van een pagina wat arbeidsintensiever, waarbij het ambachtelijk vervaardigen van HTTP-verzoeken nodig was. Vandaag de dag abstraheert Ruby veel van die complexiteit weg.

Alternatieven voor net/http en open-uri omvatten hogere-niveau gems zoals HTTParty en RestClient. Ze bieden meer functies en een object-georiënteerde benadering. Voor zware web scraping, wenden veel Rubyisten zich tot Nokogiri om HTML te parsen of Mechanize dat zich gedraagt als een webbrowser.

Wat implementatie betreft, houd in gedachten dat open-uri een wrapper is voor net/http, dus het is vrij handig maar kan wat low-level controle missen. net/http geeft je meer controle over het verzoek maar kan uitgebreid zijn voor eenvoudige taken.

Zie Ook

Voor verder lezen en aanvullende bronnen, bekijk: