라이브러리는 도서관 아닌가요

python urllib 퍼센트 인코딩 본문

Python

python urllib 퍼센트 인코딩

veryhi 2021. 10. 7. 16:31

일반적으로 url에 한글이 섞여 있으면 오류가 난다.

하지만, 우리가 사용하는 웹 브라우저가 이를 해석 가능한 아스키코드로 인코딩해주기 때문에 우리는 아래와 같은 url을 사용해도 해당 페이지로 접속이 가능한 것이다.(chrome 기준)

https://ko.wikipedia.org/wiki/자바

 

하지만, 아래와 같이 브라우저를 거치지 않고 명령어로 접속을 하려고 하면 에러가 난다.

>>> import urllib.parse
>>> urllib.request.urlopen('https://ko.wikipedia.org/wiki/자바')

 

그러면 파이썬 코드 상에서는 이를 어떻게 다뤄야 할까? 아래와 같이 퍼센트 인코딩을 하면 된다.

>>> import urllib.parse
>>> urllib.parse.quote('자바')
'%EC%9E%90%EB%B0%94'

'%EC%9E%90%EB%B0%94'라는 값을 다시 unquote해주면 '자바'가 된다.

>>> urllib.parse.unquote('%EC%9E%90%EB%B0%94')
'자바'

 

아스키코드가 아닌 값을 항상 유의하도록 하자.

Comments