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¶m2=value2#id1"
parse_result = urlparse(uri)
print(parse_result)
# 출력
# ParseResult(scheme='https', netloc='jsikim1.tistory.com', path='/category/Developer', params='', query='param1=value1¶m2=value2', fragment='id1')
위와 같이 urllib.parse.urlparse 를 사용하여 uri를 ParseResult 객체로 가져올 수 있습니다.
from urllib.parse import urlparse, parse_qs
uri = "https://jsikim1.tistory.com/category/Developer?param1=value1¶m2=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¶m2=value2
print(parse_result.fragment) # id1
ParseResult 객체의 각 값들을 위와같이 가져올 수 있습니다.
from urllib.parse import urlparse, parse_qs
uri = "https://jsikim1.tistory.com/category/Developer?param1=value1¶m2=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¶m2=value2¶m2=value3#id1"
parse_result = urlparse(uri)
params = parse_qs(parse_result.query)
print(params)
# 출력
# {'param1': ['value1'], 'param2': ['value2', 'value3']}
위와 같이 키값이 같은 Parameter가 있으면 하나의 키에 값으로 리스트 안에 두개의 값이 들어갑니다.
도움이 되셨다면 공감, 댓글 부탁드립니다!
궁금하신 점이나 요청사항은 언제든지 말씀해주세요!
피드백도 언제나 환영입니다!
감사합니다.
'Developer > Python' 카테고리의 다른 글
Python print colored text with colorama- 파이썬 colorama 사용해 쉽게 출력 문자 색상, 배경 색상 변경 (0) | 2021.01.14 |
---|---|
Python 날짜 차이 계산, 날짜 비교 방법 (1) | 2021.01.09 |
Python 날짜, 시간 계산 방법 (오늘, 어제, 한달 전, 일년 전, 내일, 한달 후, 일년 후, 날짜 시간 더하기, 날짜 시간 빼기) (2) | 2021.01.09 |
Python list chunk - 리스트 분할(자르기, 나누기, split) 방법 (0) | 2021.01.08 |
Python 날짜 사이 모든 날짜 리스트로 구하기 (4) | 2021.01.08 |
댓글