2011-02-04 11 views
27

파이썬에서 urllib2를 사용하여 URL을 엽니 다. 이 URL은 다른 URL로 리디렉션되는 다른 URL로 리디렉션됩니다.파이썬에서 리디렉션 URL을 얻는 방법

각 리디렉션 후에 URL을 인쇄하고 싶습니다.

들어

은 - =

에> 리디렉션 ->는 B -> C는 -

I는 B의 URL을 인쇄하려면, C 및 D는 (A는 이미 알려져> D이고 시작 URL이기 때문에).

+1

요청 모듈 'actualURL = requests.head (passedurl, timeout = 100.0, headers = {'Accept-Encoding ':'identity '})를 사용하지 않는 이유 headers.get ('location ', passedurl)'? –

답변

8

아마도 가장 좋은 방법은 urllib2.HTTPRedirectHandler을 서브 클래 싱하는 것입니다. 다이브 인 파이썬의 chapter on redirects이 도움이 될 수 있습니다.

44

현재 URL을 묻는 것만으로 쉽게 D를 얻을 수 있습니다. 중간에 대처하기 위해

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

는 아마도 리디렉션을 기록하는 HTTPRedirectHandler를 사용하여, build your own opener해야합니다 리디렉션합니다.

+6

정말 질문에 대답하지 않습니다. 맞습니까? – sberry

+2

"내가 도착한 URL이 무엇인가"라는 일반적인 질문을 해결합니다. 여기 –

+2

은'requests'를 사용하는 비슷한 대답입니다 : http://stackoverflow.com/a/20475712/309483 –

관련 문제