Как запрашивать сжатые страницы с веб-серверов через скрипты ruby?

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


person Vic    schedule 04.04.2009    source источник


Ответы (3)


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

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']

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

person Vic    schedule 13.04.2009

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

Accept-Encoding: gzip,deflate

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

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

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

person Jayrox    schedule 04.04.2009

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

person user37011    schedule 05.04.2009