파이썬으로 URL 파싱하기

2017-11-07 • pythonpython, url, parsing • 1 min read

파이썬에서 URL을 파싱할 때 주로 파이썬 자체 모듈인 urllib을 사용합니다.

LG전자 채용 사이트인 http://apply.lg.com/main/Intro.rpi을 파싱 해보겠습니다.

from urllib import parse
parse.urlparse('http://apply.lg.com/main/Intro.rpi')
ParseResult(scheme='http', netloc='apply.lg.com', path='/main/Intro.rpi', params='', query='', fragment='')

출력을 보니까 netloc (hostname)이 apply.lg.com 입니다.

이는 sub-domain, domain, top-level domain (TLD)를 모두 포함하고 있습니다.

여기서 domainTLD만 가져오려면 어떻게 하면 될까요? 간단하지 않습니다. sub-domain의 개수도 여러개가 될 수 있고, TLD도 여러 요소로 구성될 수 있기 때문입니다.

예를 들어서, TLDcom, co.kr, edu, ac.kr 등 다양합니다.

그래서 TLD 목록을 가지고 있어야 정확한 파싱이 가능할 것 같습니다.

tldextract을 사용하면 sub-domain, domain, TLD를 구분할 수 있습니다.

먼저 tldextract을 설치 합니다.

pip install tldextract

import tldextract
tldextract.extract('http://apply.lg.com/main/Intro.rpi')
ExtractResult(subdomain='apply', domain='lg', suffix='com')

이제 doamin + TLD를 쉽게 만들 수 있습니다.

url_comps = tldextract.extract('http://apply.lg.com/main/Intro.rpi')
"{}.{}".format(url_comps.domain, url_comps.suffix)
'lg.com'