"Urllib"의 두 판 사이의 차이

Pywiki
둘러보기로 가기 검색하러 가기
(새 문서: == 개요 == URL을 다루는 모듈을 모아놓은 패키지. 분류:라이브러리)
 
 
(사용자 2명의 중간 판 7개는 보이지 않습니다)
1번째 줄: 1번째 줄:
 
== 개요 ==
 
== 개요 ==
URL을 다루는 모듈을 모아놓은 패키지.
+
URL을 다루는 모듈을 모아놓은 패키지. 다양한 모듈을 포함하고 있다.
[[분류:라이브러리]]
+
 
 +
= 모듈 =
 +
 
 +
== urllib.request ==
 +
웹사이트에 있는 데이터에 접근하는 기능을 제공.
 +
 
 +
=== 요청(클라이언트 정보 출력) ===
 +
<syntaxhighlight lang="python">
 +
import urllib.request
 +
 
 +
url = "http://..."  # FTP의 리소스를 받아보고 싶다면 "ftp://주소" 형태로 입력하면 된다.
 +
res = urllib.request.urlopen(url)  # 응답을 받는다.
 +
data = res.read()  # 데이터를 읽는다.(바이너리 형태)
 +
text = data.decode("utf-8")  # utf-8을 이용하여 읽을 수 있는 형태로 변환한다.
 +
print(test)  # 출력.
 +
</syntaxhighlight>
 +
 
 +
== urllib.parse ==
 +
url 관련 조작을 위한 모듈.
 +
 
 +
딱히 굉장한 기능이라기보단.. 귀찮은 작업들을 줄여주는 역할.
 +
{| class="wikitable"
 +
!의도
 +
!설명
 +
!방법
 +
|-
 +
|매개변수를 담아 요청
 +
|검색어 등 매개변수를 담아 요청하는 방법
 +
매개변수는 사전 형태로 담는다.
 +
 
 +
 
 +
parse는 값들 사이에 자동으로 &을 넣어서 타이핑의 수고를 줄여준다.
 +
|<syntaxhighlight lang="python">
 +
import urllib.parse
 +
import urllib.request
 +
 
 +
api = "http://주소"
 +
values = {'변수1':값, '변수2':값2, ...}
 +
 
 +
params = urllib.parse.urlencode(values)  # 해당 값들을 담아 url 코드로 바꾼다.(한국어를 사용할 때 필수)
 +
url = api + "?" + params  # 최종적으로 요청할 주소를 만든다.
 +
data = urllib.request.urlopen(url).read()
 +
text = data.decode("utf-8")  # utf-8로 디코드 해서 읽을 수 있는 데이터로 만든다.
 +
</syntaxhighlight>
 +
|-
 +
|상대경로 처리
 +
|href 속성에 링크를 상대경로로 해두는 경우가 많다.
 +
ex) "/home/target.png"
 +
 
 +
이 링크에 제대로 접근하려면 상대경로를 절대경로로 변환해주어야 한다.
 +
|<syntaxhighlight lang="python">
 +
from urllib.parse import urljoin
 +
 
 +
base = "http://도메인 등의 주소"
 +
url = urljoin(base, "상대경로")  # 두 주소를 이어붙여준다.
 +
</syntaxhighlight>
 +
|}
 +
[[분류:라이브러리]]

2021년 4월 20일 (화) 19:41 기준 최신판

1 개요[편집 | 원본 편집]

URL을 다루는 모듈을 모아놓은 패키지. 다양한 모듈을 포함하고 있다.

2 모듈[편집 | 원본 편집]

2.1 urllib.request[편집 | 원본 편집]

웹사이트에 있는 데이터에 접근하는 기능을 제공.

2.1.1 요청(클라이언트 정보 출력)[편집 | 원본 편집]

import urllib.request

url = "http://..."  # FTP의 리소스를 받아보고 싶다면 "ftp://주소" 형태로 입력하면 된다.
res = urllib.request.urlopen(url)  # 응답을 받는다.
data = res.read()  # 데이터를 읽는다.(바이너리 형태)
text = data.decode("utf-8")  # utf-8을 이용하여 읽을 수 있는 형태로 변환한다.
print(test)  # 출력.

2.2 urllib.parse[편집 | 원본 편집]

url 관련 조작을 위한 모듈.

딱히 굉장한 기능이라기보단.. 귀찮은 작업들을 줄여주는 역할.

의도 설명 방법
매개변수를 담아 요청 검색어 등 매개변수를 담아 요청하는 방법

매개변수는 사전 형태로 담는다.


parse는 값들 사이에 자동으로 &을 넣어서 타이핑의 수고를 줄여준다.

import urllib.parse
import urllib.request

api = "http://주소"
values = {'변수1':, '변수2':값2, ...}

params = urllib.parse.urlencode(values)  # 해당 값들을 담아 url 코드로 바꾼다.(한국어를 사용할 때 필수)
url = api + "?" + params  # 최종적으로 요청할 주소를 만든다.
data = urllib.request.urlopen(url).read()
text = data.decode("utf-8")  # utf-8로 디코드 해서 읽을 수 있는 데이터로 만든다.
상대경로 처리 href 속성에 링크를 상대경로로 해두는 경우가 많다.

ex) "/home/target.png"

이 링크에 제대로 접근하려면 상대경로를 절대경로로 변환해주어야 한다.

from urllib.parse import urljoin

base = "http://도메인 등의 주소"
url = urljoin(base, "상대경로")  # 두 주소를 이어붙여준다.