Как запросить gzipped страницы с веб-серверов через скрипты ruby? - PullRequest
2 голосов
/ 04 апреля 2009

У меня есть скрипт ruby, который отправляет и сохраняет веб-страницы с разных сайтов, как мне убедиться, что он проверяет, может ли сервер отправлять сжатые файлы, и сохраняет их, если они доступны ... любая помощь будет отличной!

Ответы [ 3 ]

5 голосов
/ 13 апреля 2009

Можно отправлять пользовательские заголовки в виде хэшей ...

custom_request = Net::HTTP::Get.new(url.path, {"Accept-Encoding" => "gzip"})

затем вы можете проверить ответ, определив объект ответа как:

response = Net::HTTP.new(url.host, url.port).start do |http| 
http.request(custom_request) 
end 

p [response['Content-Encoding']

Спасибо тем, кто откликнулся ...

1 голос
/ 04 апреля 2009

Вам необходимо отправить следующий заголовок с вашим запросом:

Accept-Encoding: gzip,deflate

Однако я все еще читаю, как кодировать ruby, и не знаю, как сделать синтаксис заголовка в библиотеке net / http (который, я полагаю, вы используете для выполнения запроса)

Edit: На самом деле, согласно ruby ​​doc кажется, что этот заголовок является частью отправляемого заголовка по умолчанию, если вы не указали другие заголовки 'accept-encoding'.

Опять же, как я уже говорил в своем первоначальном ответе, я все еще просто читаю тему, поэтому могу ошибаться.

0 голосов
/ 05 апреля 2009

Для захвата веб-страниц и работы с ними, ScrubyIt потрясающе.

...