2008-12-01 7 views

답변

9

특별히 콘텐츠를 다운로드하지 않으려면 HEAD 요청 방법을 사용해야합니다. 나는 urlliburllib2 라이브러리 HEAD 요청을 지원하지 않는 생각, 그래서 당신은 낮은 수준의 httplib 라이브러리를 사용해야합니다 :

import httplib 

h = httplib.HTTPConnection('www.example.com') 
h.request('HEAD', '/') 
response = h.getresponse() 

// Check for 30x status code 
if 300 <= response.status < 400: 
    // It's a redirect 
    location = response.getheader('Location') 
+0

좋아요. 나는 urllib/urllib2가 많은 행운을 누리지 않고이를 강제하도록 노력하고 있었고, httplib의 문서는 최상이 아니다. 감사! – bgoncalves

+0

@Adam 'urllib2'로 할 수있는 것처럼 보입니다. [here] (http://stackoverflow.com/questions/4421170/python-head-request-with-urllib2)를 참조하십시오. – pushkin

1

urllib2으로 URL을 열고 리디렉션하면 리디렉션의 상태가 30x가됩니다. 정보를 확인하여 리디렉션 된 위치를 확인하십시오. 응답의 일부인 info()을 읽으려면 페이지를 읽을 필요가 없습니다.

+0

당신에게 HEAD 명령을 실행하는 방법을 줄 urllib2가 있습니까를? 이는 일반적으로 페이지 내용을 전송하는 네트워크 오버 헤드없이 필요한 정보 만 얻는 방법입니다. –

+0

페이지를 읽을 필요가 없습니다. 응답에는 단순히 닫을 수있는 소켓이 포함됩니다. –

+0

네,하지만 여전히 네트워크 트래픽이 발생하고 있습니다. HEAD의 요점은 네트워크 트래픽을 발생시키지 않는 것입니다. –

관련 문제