Подтвердить что ты не робот

Как я могу получить окончательный URL-адрес перенаправления при использовании urllib2.urlopen?

Я использую метод urllib2.urlopen, чтобы открыть URL-адрес и получить разметку веб-страницы. Некоторые из этих сайтов перенаправляют меня, используя перенаправления 301/302. Я хотел бы узнать конечный URL, к которому я перенаправлен. Как я могу получить это?

4b9b3361

Ответ 1

Вызвать метод .geturl() возвращаемого файлового объекта. На urllib2 docs:

geturl() - вернуть URL-адрес извлеченного ресурса, который обычно используется для определения того, было ли выполнено повторное перенаправление

Пример:

import urllib2
response = urllib2.urlopen('http://tinyurl.com/5b2su2')
response.geturl() # 'http://stackoverflow.com/'

Ответ 2

Возвращаемое значение urllib2.urlopen имеет метод geturl(), который должен возвращать действительный (то есть последний переназначенный) URL.

Ответ 3

например.: urllib2.urlopen('ORIGINAL LINK').geturl()

urllib2.urlopen(urllib2.Request('ORIGINAL LINK')).geturl()