urllib ?
- 웹 클라이언트를 작성하는 데 사용되는 모듈들 중에 가장 빈번하게 사용하는 모듈
- HTTP 서버 뿐만 아니라, FTP 서버 및 로컬 파일 등을 처리한다.
- 클라이언트에서 공통적으로 필요한 함수와 클래스 등을 제공한다.
- 주로 URL 처리와 서버 액세스 관련 API를 제공한다.
urllib.parse
URL의 분해, 조립, 변경 및 URL 문자 인코딩, 디코딩 등을 처리한다.
예문
1 | from urllib.parse import urlparse |
결과
1 | ParseResult(scheme='http', netloc='www.python.org', |
urlsplit(), urljoin(), parse_qs(), quote(), encode() 함수 등이 있다.
ParseResult 클래스 속성
- scheme : URL에서 사용된 프로토콜
- netloc : Network Location, user:password@host:port 형식으로 표현 (HTTP 프로토콜은 host:port 로 표현)
- path : 파일이나 애플리케이션 경로
- params: 애플리케이션에 전달될 매개변수 (현재는 사용되지 않음)
- query : 질의 문자열 또는 매개변수, & 로 구분된 이름=값 의 쌍 형식으로 표현
- fragment : 문서 내의 앵커 등 조각을 지정
urllib.request
주어진 URL에서 데이터를 가져오는 기본 기능 제공함.
urlopen 함수 형식
urlopen(url, data=None, [timeout])
- url : 문자열로 직접 지정하거나, Request 클래스의 인스턴스로 지정 가능. 또는 file 스키마를 지정하여 로컬 파일을 열 수 있음.
- PUT, HEAD 메소드 등, 헤더 조작이 필요할 때는 Request 클래스를 같이 사용한다.
- GET 방식이 기본값
- data : 질의 문자열을 지정하여 POST로 보냄. bytes 타입이어야한다.
- timeout : 타임아웃 시간 (단위는 seconds)
- 인증/쿠키/프록시 등의 복잡한 요청 처리는 해당 핸들러 클래스를 같이 사용해야한다.
urlopen 사용 예시
1 | from urllib.request import urlopen |
urlopen POST 요청
1 | from urllib.request import urlopen |
Request 클래스로 요청 헤더 지정
1 | from urllib.request import urlopen, Request |
참고) 파이썬 웹 프로그래밍(한빛미디어)