2011-02-04 20 views
27

Python'da bir url açmak için urllib2 kullanıyorum. Bu URL, başka bir URL'ye yönlendiren başka bir URL'ye yönlendirir.Python ile bir yönlendirmenin URL'si nasıl alınır

Her yönlendirme sonrasında URL'yi yazdırmak istiyorum.

Örneğin

için

- =

A

için> yönlendirmeleri -> B -> C -

Ben B URL'sini yazdırmak istediğiniz, C ve D (A zaten bilinen> D çünkü başlangıç ​​URL'si).

+1

neden istek modülünü kullanmıyor, 'actualURL = requests.head (geçti, zaman aşımı = 100.0, üstbilgiler = {'Kabul-Kodlama': 'kimlik'}) headers.get ('konum', geçiş tarihi)'? –

cevap

8

Muhtemelen en iyi yol urllib2.HTTPRedirectHandler sınıfının alt sınıfıdır. Python'un chapter on redirects İçeriğine Dalış yararlı olabilir.

44

Sadece mevcut URL'yi sorarak kolayca D alabilirsiniz. ara ile ilgilenmek için

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

muhtemelen yönlendirmeleri kaydeden HTTPRedirectHandler kullanarak, build your own opener gerekir yönlendirir.

+6

Soruyu gerçekten cevaplamıyor, değil mi? – sberry

+2

"Geldiğim url nedir" sorusu daha sık sorulan soruları çözüyor? –

+2

, 'request' kullanılarak benzer bir cevaptır: http://stackoverflow.com/a/20475712/309483 –

İlgili konular