Python: Получить HTTP-заголовки от вызова urllib2.urlopen?

Несколько причин

SSH-ключи

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

Конфигурация общего хранилища

# try to set this flag to true
git config core.sharedRepository true

core.sharedRepository

Когда группа (или true), хранилище становится доступным для нескольких пользователей в группе (убедитесь, что все файлы и объекты доступны для записи в группе).

Когда все (или мир или все), хранилище будет доступно для чтения всем пользователям, в дополнение к совместному использованию в группах.

Ложь по умолчанию.

46
задан crazyhatfish 3 December 2016 в 19:42
поделиться

3 ответа

Используйте метод response.info () для получения заголовков.

Из urllib2 docs :

urllib2.urlopen ( url [, data] [, timeout])

...

Эта функция возвращает объект в виде файла с двумя дополнительными методами:

  • geturl () - возвращает URL-адрес полученного ресурса, обычно используется для определить, было ли выполнено перенаправление
  • info () - вернуть метаинформацию страницы, такую ​​как заголовки, в форме экземпляра httplib.HTTPMessage (см. Краткий справочник по заголовкам HTTP)

Итак, для вашего Например, попробуйте выполнить результат response.info (). headers для того, что вы ищете.

Обратите внимание, что основное предостережение при использовании httplib.HTTPMessage задокументировано в python issue 4773 .

48
ответ дан 26 November 2019 в 20:12
поделиться

А как насчет отправки запроса HEAD вместо обычного запроса GET. Следующий фрагмент (скопированный из аналогичного вопроса ) делает именно это.

>>> import httplib
>>> conn = httplib.HTTPConnection("www.google.com")
>>> conn.request("HEAD", "/index.html")
>>> res = conn.getresponse()
>>> print res.status, res.reason
200 OK
>>> print res.getheaders()
[('content-length', '0'), ('expires', '-1'), ('server', 'gws'), ('cache-control', 'private, max-age=0'), ('date', 'Sat, 20 Sep 2008 06:43:36 GMT'), ('content-type', 'text/html; charset=ISO-8859-1')]
40
ответ дан 26 November 2019 в 20:12
поделиться

urllib2.urlopen выполняет HTTP-запрос GET (или POST, если вы указываете аргумент данных), а не HTTP-ГОЛОВУ (если бы он выполнял последнее, вы не могли бы выполнять строки чтения или другой доступ к тело страницы, конечно).

8
ответ дан 26 November 2019 в 20:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: