* urlparse 모듈은 주로 웹클라이언트 단에서 사용되는 parser 모듈이다.
1. urlparse 모듈
이 모듈은 URL의 분해, 조립, 변경 등을 처리하는 함수를 제공하며, parse한 결과를 리턴한다.
from urlparse import urlparse result = urlparse("http://www.python.org:80:80/guido/python.html;philosophy?overall=3#n10") result ParseResult(scheme='http',netloc='www.python.org:80:80',path='/guido/python.html', params='philosophy', query='overall=3', fragment='n10')
|
* 속성값의 의미
속성 값 |
의미 |
scheme |
URL에 사용된 프로토콜을 의미 |
netloc |
네트워크의 위치, user:password@host:port 형식으로 표현되며, HTTP 프로토콜일 경우 host:port 형식으로 지정된다. |
path |
파일이나 애플리케이션 경로를 의미 |
params |
애플리케이션에 전달될 매개변수 |
query |
질의 문자열로 앰퍼샌드(&)로 구분된 키=값 쌍 형식으로 표현 |
fragment |
문서내의 앵커 등 조각을 지정 |
2. urllib2 모듈
1) urlopen 함수
urllib2 모듈은 주어진 URL에서 데이터를 가져오는 기본 기능을 제공하며 urlopen() 함수의 형식은 아래와 같다.
* 참고로 이함수는 2.x버전 urllib.urlopen() 함수는 3.x버전에서는 제거되었고 urllib2.urlopen() 함수를 사용해야한다.
urlopen(url, data=None, [timeout]) |
* url에 file을 지정하면 로컬 파일을 열수도 있음
* 요청방식을 POST로 보내고 싶다면 data 인자에 질의 문자열을 지정해주면 된다.
* timeout은 응답을 기다리는 타임아웃 시간을 초로 표시
- 사용 예제 1
네이버 웹서버에 페이지를 읽어서 500 바이트 만큼 출력
from urllib2 import urlopen f = urlopen("http://www.naver.com") print f.read(500) ... <!doctype html> <html lang="ko"> <head> … |
- 사용 예제 2
POST 방식으로 요청(네이버에서는 post 방식에대한 처리가 없기때문에 그냥 그대로보임)
from urllib2 import urlopen data = "query=python" f = urlopen("http://www.naver.com") print f.read(500) <!doctype html> <html lang="ko"> <head> … |
- 사용 예제 3
POST 방식 요청을 아래와같은 방식으로도 할수 있다.
import urllib2 req = urllib2.Request(“http://www.naver.com”) req.add_header(“Content-Type”,”text/plain”) req.add_data(“query=python”) #POST method f = urllib2.urlopen(req) print f.read(300)
|
* 참고 내부링크
'IT > Python' 카테고리의 다른 글
파이썬(python) getopt 함수 사용하기 (0) | 2015.10.05 |
---|---|
파이썬 웹서버 모듈(BaseHTTPServer, SimpleHTTPServer) 사용하기 (0) | 2015.06.11 |
파이썬 웹프로그래밍 - 이미지 다운로드 (urllib2, httplib) 소스 (3) | 2015.05.15 |
파이썬 웹표준 라이브러리 소개 및 변경사항 (0) | 2015.05.11 |
윈도우(Windows) 환경에서 파이썬(Python) 개발환경 구축하기 (0) | 2015.03.31 |