Ruby:
Scaricare una pagina web
How to:
Usando Ruby, possiamo scaricare una pagina web con gemme come open-uri
per un approccio semplice o net/http
per uno più dettagliato.
require 'open-uri'
# Usa 'open-uri' per aprire l'URL desiderato
page_content = URI.open('https://www.example.com').read
puts page_content[0..200] # stampiamo solo i primi 200 caratteri per brevità
Questo esempio stamperà i primi 200 caratteri del codice HTML della pagina example.com.
Con net/http
:
require 'net/http'
require 'uri'
# Imposta l'URI della pagina da scaricare
url = URI.parse('https://www.example.com')
# Crea una richiesta HTTP per ottenere la risposta del server
response = Net::HTTP.get_response(url)
puts response.body[0..200] # anche qui vediamo solo i primi 200 caratteri
Questo codice fa la stessa cosa, ma con maggiore controllo su autenticazione, redirection, e headers.
Deep Dive
Storicamente, scaricare una pagina web significava inviare una richiesta HTTP e ricevere un codice HTML di risposta. Le gemme Ruby come open-uri
e net/http
simplificano questo processo.
open-uri
è più diretto e fa il lavoro con meno configurazione, consigliato per script piccoli e semplici. net/http
, d’altra parte, offre più opzioni di personalizzazione per cose come impostare timeout o gestire HTTPS.
In Ruby on Rails, potresti usare gemme come Mechanize
, che simula un browser web e può gestire cookie, sessioni e javascript. Altra alternativa è HTTParty
, che rende il processo così semplice come scrivere HTTParty.get(url)
.
Si possono incontrare sfide come la gestione delle richieste AJAX o le pagine che richiedono JS per la visualizzazione completa. In questi casi, strumenti come Selenium o Watir, che automatizzano un browser, possono essere necessari.