Можем ли мы получить только информацию заголовка веб-страницы, а не тело? (Механизировать) - PullRequest
3 голосов
/ 28 апреля 2010

Что делать, если мне нужно только загрузить страницу, если она не изменилась с момента последней загрузки?Какой самый лучший способ?Могу ли я сначала получить размер страницы, а затем сравнить решение, изменилось ли оно, если да, я прошу о загрузке, иначе пропустить?

Я планирую использовать механизацию (python).

Ответы [ 2 ]

5 голосов
/ 28 апреля 2010

запрос должен быть HEAD , а не GET:

9,4 HEAD

Метод HEAD идентичен GETза исключением того, что сервер НЕ ДОЛЖЕН возвращать тело сообщения в ответе.Метаинформация, содержащаяся в заголовках HTTP в ответ на запрос HEAD, ДОЛЖНА быть идентична информации, отправленной в ответ на запрос GET.Этот метод может использоваться для получения метаинформации о сущности, подразумеваемой запросом, без передачи самого тела сущности.Этот метод часто используется для тестирования гипертекстовых ссылок на достоверность, доступность и недавнюю модификацию.

Ответ на запрос HEAD МОЖЕТ быть кэшируемым в том смысле, что информация, содержащаяся в ответе, МОЖЕТ использоваться для обновления ранеекэшированная сущность из этого ресурса.Если новые значения поля указывают, что кэшированный объект отличается от текущего объекта (как было бы указано изменением Content-Length, Content-MD5, ETag или Last-Modified), то кэш ДОЛЖЕН рассматривать запись в кэше как устаревшую.

См. Здесь Как выполнить запрос HEAD с библиотекой механизации ?

0 голосов
/ 07 мая 2011

да, вы можете получить больше информации в python mechanize, установив вот так

br = mechanize.Browser()
br.set_debug_http(True)
br.set_debug_redirects(True)
... Your code here ...

этим вы можете получить ценную информацию заголовка страницы

...