2011-02-04 6 views
27

के साथ रीडायरेक्ट का यूआरएल कैसे प्राप्त करें पायथन में, मैं यूआरएल खोलने के लिए urllib2 का उपयोग कर रहा हूं। यह यूआरएल एक और यूआरएल पर रीडायरेक्ट करता है, जो अभी तक एक और यूआरएल पर रीडायरेक्ट करता है।पायथन

मैं प्रत्येक रीडायरेक्ट के बाद यूआरएल मुद्रित करना चाहता हूं।

उदाहरण

लिए

-> = रीडायरेक्ट

को

A -> बी -> सी -> डी

मैं बी का URL प्रिंट करना चाहते हैं, सी और डी (ए को पहले से ही जाना जाता है क्योंकि यह प्रारंभ यूआरएल है)।

+1

क्यों अनुरोध मॉड्यूल का उपयोग नहीं करते हैं, 'actualURL = request.head (passurl, timeout = 100.0, हेडर = {'स्वीकृति-एन्कोडिंग': 'पहचान'})। Headers.get ('location', passurl)'? –

उत्तर

8

शायद urllib2.HTTPRedirectHandler उप-वर्ग का सबसे अच्छा तरीका है। पाइथन के chapter on redirects में डाइव सहायक हो सकता है।

44

आप वर्तमान यूआरएल पूछकर आसानी से डी प्राप्त कर सकते हैं।

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

मध्यवर्ती से निपटने के लिए पुनर्निर्देश आप शायद उस रीडायरेक्ट रिकॉर्ड HTTPRedirectHandler का उपयोग कर, build your own opener की आवश्यकता होगी।

+6

वास्तव में सवाल का जवाब नहीं देता है, है ना? – sberry

+2

यह "यूआरएल क्या है" का अधिक आम सवाल हल करता है? –

+2

यहां 'अनुरोध' का उपयोग कर एक समान उत्तर है: http://stackoverflow.com/a/20475712/309483 –