2013-08-05 3 views
0

리디렉션이 있는지 여부에 상관없이 urllib2를 사용하여 링크의 최종 URL을 가져 오는 중입니다.urllib2로 리디렉션 된 모든 URL을 얻는 방법

fileobj = urllib.request.urlopen(adress, timeout=30) 
url = fileobj.geturl() 

을하지만 여러 리디렉션이있을 때 나는 다른 모든 리디렉션 URL을 좀하고 싶습니다 다음과 같이 내 간단한 코드 보인다. 어떻게하면 urllib2로 문서를 읽었을 지 모르지만 유용한 것을 찾을 수 없었다. 어쩌면 누군가가 내게 힌트를주고 올바른 방향으로 나를 가리킬 수 있습니까?

tcp 연결 풀에 문제가있어서 다른 라이브러리를 사용할 수도 있지만 요청은 사용할 수 없습니다.

Thx 많이!

+0

'요청'에 어떤 문제가 있습니까? 해당 라이브러리에는 명시 적으로 전체 리디렉션 기록이 포함됩니다. –

+0

마찬가지로 requests.get은 tcp 연결을 너무 오래 열어두고 풀에 다시 연결하지 않습니다. 지금 당장 메신저 나는이 문제가없는 머리 방법을 사용하지만, 또한 리디렉션 기록 및 최종 URL을 얻을 기회가 없습니다. 그게 왜 내가 요청과 urllib2의 조합을 사용하여. – zwieback86

+0

하지만 어쨌든 Martijn은 요청 프로젝트에 관심이있을 수도 있습니다. 내가 r.history에 액세스 할 수 있고 다른 리디렉션을 볼 수 있습니다. 그러나 각 리디렉션에 대한 URL을 얻는 방법은 무엇입니까? 나는 요청한 anythong을 기본 및 고급 가이드에서 찾지 못했습니다. 정말 고마워! – zwieback86

답변

0

자신의 오프너를 만들고 서브 클래스 urllib2.HTTPRedirectHandler을 만들 수 있습니다. Dive Into Python의 Handling Redirects 장을 참조하십시오. 그것은 매우 도움이됩니다.

+0

Thx 내가 이것 좀 봐! – zwieback86

+0

urllib2에 대한 더 자세한 정보는 [urllib2 tutorial] (http://docs.python.org/2/howto/urllib2.html)을 참조하십시오. – zhangyangyu

관련 문제