Python 요청으로 리디렉션된 URL 검색
HTTP 요청 전송에 널리 사용되는 Python 라이브러리인 Requests를 사용하면 사용자가 허용_리디렉션을 설정하여 리디렉션을 처리할 수 있습니다. 매개변수를 True로 설정합니다. 이렇게 하면 자동 리디렉션 문제가 해결되지만 대상 URL을 인식할 수 없게 됩니다. 이 질문은 일련의 리디렉션 후 최종 URL을 얻는 방법을 다룹니다.
해결책은 response.history 속성에 있습니다. 요청이 성공하면 response.url은 최종 URL을 반환하고, response.history는 모든 중간 응답과 해당 URL 목록을 제공합니다. 이 데이터를 사용하면 리디렉션을 검사하고 최종 대상을 결정할 수 있습니다.
다음 코드 조각은 이 접근 방식을 보여줍니다.
import requests response = requests.get(someurl, allow_redirects=True) if response.history: print("Request was redirected") for resp in response.history: print(resp.status_code, resp.url) print("Final destination:") print(response.status_code, response.url) else: print("Request was not redirected")
이 코드는 response.history 속성이 비어 있지 않은지 확인합니다. , 리디렉션이 발생했음을 나타냅니다. 기록의 각 resp 개체에는 중간 응답의 상태 코드와 URL이 포함되어 있습니다. 마지막으로 response.url은 최종 URL을 제공합니다.
다음 예를 고려하세요.
>>> import requests >>> response = requests.get('http://httpbin.org/redirect/3') >>> response.history (<Response [302]>, <Response [302]>, <Response [302]>) >>> for resp in response.history: ... print(resp.status_code, resp.url) ... 302 http://httpbin.org/redirect/3 302 http://httpbin.org/redirect/2 302 http://httpbin.org/redirect/1 >>> print(response.status_code, response.url) 200 http://httpbin.org/get
이 출력은 요청이 http://의 최종 목적지에 도달하기 전에 세 번 리디렉션되었음을 확인합니다. httpbin.org/get, 리디렉션 체인의 전체 그림을 제공합니다.
위 내용은 Python 요청을 사용하여 리디렉션한 후 최종 URL을 어떻게 얻을 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!