이전 글 : 파이썬으로 URL 가지고 놀기 - yarl 편
yarl은 immutable에 적극적이며 익숙한 개발자에게 urllib의 좋은 대안이 될 수 있는 라이브러리다. 그러나 나는 yarl이 그렇게나 까는 mutable 객체를 제공하는 라이브러리를 원했다. 아래와 같은 이유에서다.
길은 가까이에 있었는데, yarl이 '우리랑 비슷한 건데 얘는 immutable이 아니라서 우리가 더 나아요'하는 furl이었다.
$ pip install furl
아래는 URL에 path와 query parameter를 추가하는 예제다. furl도 URL의 요소를 쪼개는 형태는 yarl과 비슷하니 이야기하지 않겠다.
from furl import furl
f = furl('https://velog.io')
f.path.add('/tags')
f.args['sort'] = 'popular'
print(f.url) # 'https://velog.io/tags?sort=popular'
copy()
메소드는 새로운 furl 객체를 만들어 반환한다. copy
와 함께 in-line modification 메소드인 add
, set
, remove
도 사용해 보겠다.
from furl import furl
f = furl('https://velog.io')
print(
f.copy()
.set(path='/tags')
.add(args={'sort': 'popular'})
.add(args={'keyword': 'planb'})
.remove(['keyword'])
.url
) # 'https://velog.io/tags?sort=popular'
print(f.url) # 'https://velog.io'
추가적으로, yarl과 furl의 소스 코드는 정말 배울 점이 많아 보인다. 시간 있을 때 한 번쯤 읽어봐도 좋을 것 같았다.
으아니 url 문자열 처리할때마다 "+" 같은거 쓰기 너무 싫었는데 정말 깔끔하네요 (urljoin 도 별로...)
좋은 라이브러리 소개 감사합니다 🙇♂️