본문 바로가기

프로그래밍언어/Python

[Python] urlparse

반응형

1. urllib.parse

 

urllib.parse URL을 구성요소로 파싱하는 모듈이다.

 

urllib.parse 모듈은 URL (uniform resource locator) 문자열을 addressing scheme, network location, path 등의 구성 요소로 구분하고, 이를 다시 URL 문자열로 결합하며, 상대 URL을 주어진 base URL을 기준으로 절대 경로로 변환하는 등의 기능을 수행한다.

 

이 모듈은 Relative Uniform Resource Locatorsd에 대한 인터넷 RFC에 맞춰 설계되었다.

지원하는 URL scheme들은 다음과 같다.

 

- schemes: file, ftp, gopher, hdl, http, https, imap, mailto, mms, news, nntp, prospero, rsync, rtsp, rtspu, sftp, shttp, sip, sips, snews, svn, svn+ssh, telnet, wais, ws, wss

 

urllib.parse 모듈은 URL parsing URL quoting의 두가지 큰 카테고리로 나뉘어진다. 아래에서는 URL parsing하는 메서드인 urlparse에 대해서 설명한다.

 

 

2. urllib.parse.urlparse

 

URL parsing 함수는 URL 문자를 각 구성 요소로 분리하거나, 각 요소들을 하나의 URL로 합치는 기능을 한다.

 

- urllib.parse.urlparse(urlstring, scheme='', allow_fragments=True)

 

from urllib.parse import urlparse

parsed = urlparse("https://www.test.com:8000/%test/contents.html")

print(parsed)
# ParseResult(scheme='https', netloc='www.test.com:8000', path='/%test/contents.html', params='', query='', fragment='')

print(parsed.scheme) # 'http'

print(parsed.port) # 8000

print(parsed.geturl()) # 'http://www.test.com:8000/%test/contents.html'
  • RFC 1808에 따라 netloc '//'로 시작되어야 한다.
  • named tuple
attribute index value value if not present
scheme 0 URL scheme specifier scheme parameter
netloc 1 Network location part empty string
path 2 Hierarchical path empty string
params 3 Parameters for last path element empty string
query 4 Query component empty string
fragment 5 Fragment identifier empty string
username   User name (contained netloc) None
password   Password (contained netloc) None
hostname   Host name (lower case, contained netloc) None
port   Port number (integer, contained netloc) None
  • _replace(key=value): key로 주어진 named tuple의 값을 value로 변경한 ParseResult를 반환한다.

 

[reference]

- https://docs.python.org/3/library/urllib.parse.html

 

urllib.parse — Parse URLs into components — Python 3.10.0 documentation

urllib.parse — Parse URLs into components Source code: Lib/urllib/parse.py This module defines a standard interface to break Uniform Resource Locator (URL) strings up in components (addressing scheme, network location, path etc.), to combine the componen

docs.python.org

 

반응형