Ich habe ein Ruby-Skript, das geht und speichert Webseiten von verschiedenen Seiten, wie stelle ich sicher, dass es überprüft, ob der Server gziped Dateien senden kann und speichert sie, wenn verfügbar ... jede Hilfe wäre toll!So fordern Sie über Ruby-Skripte gezippte Seiten von Webservern an?
Antwort
Man kann benutzerdefinierte Header als Hashes senden ...
custom_request = Net::HTTP::Get.new(url.path, {"Accept-Encoding" => "gzip"})
Sie dann die Antwort, wie durch die Definition eines Antwortobjekt überprüfen:
response = Net::HTTP.new(url.host, url.port).start do |http|
http.request(custom_request)
end
p [response['Content-Encoding']
Dank denen, die geantwortet haben ...
Sie benötigen die folgenden Header mit der Anfrage senden:
Accept-Encoding: gzip,deflate
Aber ich bin immer noch zu lesen, wie Ruby-Code und weiß nicht, wie die Header-Syntax in dem Netz zu tun/http-Bibliothek (die ich vorausgesetzt, dass Sie die Anfrage)
bearbeiten zu machen verwenden: Eigentlich nach, auf die ruby doc es erscheint die diese Header Teil der Standard-Header, wenn Sie angeben, nicht andere ‚accept-encoding‘ Header gesendet.
Dann noch einmal, wie ich in meiner ursprünglichen Antwort gesagt habe, lese ich gerade noch das Thema, damit ich falsch liegen könnte.
Zum Ergreifen von Webseiten und Sachen mit ihnen zu tun, ist ScrubyIt grandios.