"Urllib"의 두 판 사이의 차이
둘러보기로 가기
검색하러 가기
| 13번째 줄: | 13번째 줄: | ||
!방법 | !방법 | ||
|- | |- | ||
| − | | | + | | |
| − | | | + | | |
| − | + | | | |
| − | |||
| − | |||
| − | |||
| − | | | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
|} | |} | ||
| 56번째 줄: | 41번째 줄: | ||
| | | | ||
| | | | ||
| + | |} | ||
| + | |||
| + | == 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() | ||
| + | test = 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월 3일 (토) 15:22 판
1 개요
URL을 다루는 모듈을 모아놓은 패키지.
2 모듈
2.1 urllib.request
웹사이트에 있는 데이터에 접근하는 기능을 제공.
2.1.1 요청
| 의도 | 설명 | 방법 |
|---|---|---|
2.1.2 파일 관련
| 의도 | 설명 | 방법 |
|---|---|---|
| 파일 다운 | http://........그림.png 형태의 파일주소를 통해 저장한다. | urllib.request.urlretrieve(파일주소, 저장경로) |
| 변수에 올리기 | 파일을 직접 다운받는 게 아니라 변수에 올려 다룰 수 있다.
변수에 저장한 후, 다음과 같이 저장할 수 있다.with open(저장경로, mode="wb") as f:
f.write(변수)
|
변수 = urllib.request.urlopen(파일주소).read()
#urlopen으로 URL리소스를 열고, read로 데이터를 읽는다. |
2.2 urllib.parse
url 관련 조작을 위한 모듈.
딱히 굉장한 기능이라기보단.. 귀찮은 작업들을 줄여주는 역할.
| 의도 | 설명 | 방법 |
|---|---|---|
| 매개변수를 담아 요청 | 검색어 등 매개변수를 담아 요청하는 방법
매개변수는 사전 형태로 담는다.
|
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()
test = data.decode("utf-8") # utf-8로 디코드 해서 읽을 수 있는 데이터로 만든다.
|
| 상대경로 처리 | href 속성에 링크를 상대경로로 해두는 경우가 많다.
ex) "/home/target.png" 이 링크에 제대로 접근하려면 상대경로를 절대경로로 변환해주어야 한다. |
from urllib.parse import urljoin
base = "http://도메인 등의 주소"
url = urljoin(base, "상대경로") # 두 주소를 이어붙여준다.
|