Как получить URL перенаправления с помощью Python - PullRequest
30 голосов
/ 04 февраля 2011

В Python я использую urllib2, чтобы открыть URL. Этот URL перенаправляет на другой URL, который перенаправляет на еще один URL.

Я хочу распечатать URL после каждого перенаправления.

Например

-> = перенаправляет на

A -> B -> C -> D

Я хочу напечатать URL-адреса B, C и D (A уже известен, поскольку это начальный URL-адрес).

Ответы [ 2 ]

45 голосов
/ 04 февраля 2011

Вы можете легко получить D, просто запросив текущий URL.

req = urllib2.Request(starturl, datagen, headers)
res = urllib2.urlopen(req)
finalurl = res.geturl()

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

9 голосов
/ 04 февраля 2011

Вероятно, лучший способ - создать подкласс urllib2.HTTPRedirectHandler. Окунуться в главу Python о перенаправлениях может быть полезно.

...