본문 바로가기
Developer/Python

Python urllib.parse - url parameter parsing, uri 다루기

by roqkfrlfhr 2021. 1. 9.

Python urllib.parse - url parameter parsing, url 다루기 

 

Python에서 uri을 다루는 방법과 parameter 값을 가지고 오는 방법을 알려드리도록 하겠습니다.

UTM 값을 얻어내는 등 여러곳에 많이 유용하게 사용될 함수라 정리하려고 합니다.

 

from urllib.parse import urlparse, parse_qs

uri = "https://jsikim1.tistory.com/category/Developer?param1=value1&param2=value2#id1"
parse_result = urlparse(uri)
print(parse_result)

# 출력
# ParseResult(scheme='https', netloc='jsikim1.tistory.com', path='/category/Developer', params='', query='param1=value1&param2=value2', fragment='id1')

위와 같이 urllib.parse.urlparse 를 사용하여 uri를 ParseResult 객체로 가져올 수 있습니다.

 

from urllib.parse import urlparse, parse_qs

uri = "https://jsikim1.tistory.com/category/Developer?param1=value1&param2=value2#id1"
parse_result = urlparse(uri)
# print(parse_result)

print(parse_result.scheme)	# https
print(parse_result.netloc)	# jsikim1.tistory.com
print(parse_result.path)	# /category/Developer
print(parse_result.query)	# param1=value1&param2=value2
print(parse_result.fragment)	# id1

ParseResult 객체의 각 값들을 위와같이 가져올 수 있습니다.

 

from urllib.parse import urlparse, parse_qs

uri = "https://jsikim1.tistory.com/category/Developer?param1=value1&param2=value2#id1"
parse_result = urlparse(uri)
params = parse_qs(parse_result.query)
print(params)

# 출력
# {'param1': ['value1'], 'param2': ['value2']}

urllib.parse.parse_qs() ParseResult 객체의 query 값을 넣어 사용하여 위와같이 파싱한 값을 구할 수 있습니다.

 

※ 주의할 점

from urllib.parse import urlparse, parse_qs

uri = "https://jsikim1.tistory.com/category/Developer?param1=value1&param2=value2&param2=value3#id1"
parse_result = urlparse(uri)
params = parse_qs(parse_result.query)
print(params)

# 출력
# {'param1': ['value1'], 'param2': ['value2', 'value3']}

위와 같이 키값이 같은 Parameter가 있으면 하나의 키에 값으로 리스트 안에 두개의 값이 들어갑니다.

 

 

 

도움이 되셨다면 공감, 댓글 부탁드립니다!

궁금하신 점이나 요청사항은 언제든지 말씀해주세요!

피드백도 언제나 환영입니다!

 

감사합니다.


댓글